Given two arrays, write a function to compute their intersection.
Notice
Each element in the result must be unique.
The result can be in any order.
Have you met this question in a real interview? Yes
Example
Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2].
public int[] intersection(int[] nums1, int[] nums2) {
// Write your code here
int count = 0;
HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
List<Integer> reslist = new ArrayList<Integer>();
for(int num:nums1){
if(map.containsKey(num)){
count = map.get(num);
count+=1;
map.put(num, count);
}else{
map.put(num, 1);
}
}
for(int num:nums2){
if(map.containsKey(num)){
count = map.get(num);
count-=1;
if(count==0){
map.remove(num);
}else{
map.put(num,count);
}
reslist.add(num);
}
}
int res[] = new int[reslist.size()];
for(int i = 0;i<res.length;i++){
res[i] = reslist.get(i);
}
return res;
}