题目原址
https://leetcode.com/problems/intersection-of-two-arrays/description/
题目描述
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.
解题思路
这个题跟349题很像,只是一个是要将所有重复的元素也返回,这道题是如果一个元素重叠2次以上,那么指返回一个这个元素的值。解题办法也很简单,就是将349题的Array换成Set就可以了。因为Set中的元素不允许有重复。大体思路跟349一样,这里就不再赘述了。
AC代码
class Solution {
public int[] intersection(int[] nums1, int[] nums2) {
int length1 = nums1.length;
int length2 = nums2.length;
int length = length1 > length2 ? length1 : length2;
int count = length2;
int[] result = new int[length];
int j = 0 ;
Set<Integer> set1 = new HashSet<Integer>();
for(int i: nums1) {
set1.add(i);
}
Iterator iterator = set1.iterator();
for(int i = 0; i < nums2.length; i++) {
iterator = set1.iterator();
while(iterator.hasNext()) {
if(nums2[i] == (Integer)iterator.next()){
result[j++] = nums2[i];
iterator.remove();
}
}
}
result = Arrays.copyOf(result, j);
return result;
}
}