reoger的记录

--以后的你会感激现在那么努力的自己

0%

两个数组的交集

两个数组的交集

难度 简单

给定两个数组,编写一个函数来计算它们的交集。

示例 1:

1
2
**输入:** nums1 = [1,2,2,1], nums2 = [2,2]
**输出:** [2]

示例 2:

1
2
**输入:** nums1 = [4,9,5], nums2 = [9,4,9,8,4]
**输出:** [9,4]

说明:

  • 输出结果中的每个元素一定是唯一的。
  • 我们可以不考虑输出结果的顺序。

Solution

解题思路
计算数组间的交集,最简单的方式肯定是使用Set集合来做。我们将num1数组的数据添加到一个Set集合set中,然后遍历num2数据,只要num2数组有与set相同的数,就认为这个是相同的数,添加到另外一个Set集合res中,最终,res中所有的数据就是我们要返回的数据,将其转化成数组返回即可。

Language: Java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Solution {
   public int[] intersection(int[] nums1, int[] nums2) {
        if (nums1 == null || nums1.length ==0 || nums2 == null || nums2.length == 0){
           return new int[0];
      }
       Set<Integer> set = new HashSet<>();
       Set<Integer> res = new HashSet<>();
       for (int i = 0; i < nums1.length; i++) {
           set.add(nums1[i]);
      }
       for (int i = 0; i < nums2.length; i++) {
           if (set.contains(nums2[i])){
               res.add(nums2[i]);
          }
      }
       int num[] = new int[res.size()];
       int i = 0;
       for (Iterator it = res.iterator(); it.hasNext();){
           num[i++] = (int) it.next();
      }
       return num;
  }
}