Given two arrays, write a function to compute their intersection.
Example:
Given nums1 = [1, 2, 2, 1]
, nums2 = [2, 2]
, return [2]
.
Note:
- Each element in the result must be unique.
- The result can be in any order.
第一想法用HashMap<Integer, Boolean>,但错误,用两个HashSet<Ingeger>
一刷:
public int[] intersection(int[] nums1, int[] nums2) { Set<Integer> set1 = new HashSet<Integer>(); Set<Integer> set = new HashSet<Integer>(); for (int i = 0; i < nums1.length ; i++) { set1.add(nums1[i]); } for (int i = 0; i < nums2.length; i++) { if(set1.contains(nums2[i])){ set.add(nums2[i]); } } int[] result = new int[set.size()]; int j=0; for (Integer num : set ) { result[j] = num; j++; } return result; }