题意:找出两个数组中交叉的部分
思路:先把第一个数组中唯一的元素提取出来,然后在第二个数组中找到重复出现的元素,并提取出来放到结果数组中
public class Solution {
public int[] intersection(int[] nums1, int[] nums2) {
int[] res = new int[nums1.length];
HashSet<Integer> temp = new HashSet<Integer>();
for(int i=0;i<nums1.length;i++) {
if(!temp.contains(nums1[i]))
temp.add(nums1[i]);
}
int cnt = 0;
for(int i=0;i<nums2.length;i++) {
if(temp.contains(nums2[i])) {
res[cnt++] = nums2[i];
temp.remove(nums2[i]);
}
}
if(cnt == 0)
return new int[0];
return Arrays.copyOfRange(res, 0, cnt);
}
}