image.pngimage.png
image.png

解决思路

set

其思想是将两个数组转换为集合 set,然后迭代较小的集合检查是否存在在较大集合中。平均情况下,这种方法的时间复杂度为 O(n+m)。

/

  1. class Solution {
  2. public int[] intersection(int[] nums1, int[] nums2) {
  3. HashSet<Integer> set1 = new HashSet<Integer>();
  4. for (Integer n : nums1) set1.add(n);
  5. HashSet<Integer> set2 = new HashSet<Integer>();
  6. for (Integer n : nums2) set2.add(n);
  7. //求set的交集
  8. set1.retainAll(set2);
  9. int [] output = new int[set1.size()];
  10. int idx = 0;
  11. for (int s : set1) output[idx++] = s;
  12. return output;
  13. }
  14. }