Given two arrays, write a function to compute their intersection.
Example:
Given nums1 = [1, 2, 2, 1]
, nums2 = [2, 2]
, return [2, 2]
.
public class Solution {
public int[] intersect(int[] nums1, int[] nums2) {
Map map = new HashMap();
ArrayList list = new ArrayList();
for(int i=0;i<nums1.length;i++){
if(map.containsKey(nums1[i])){
int count = (int)map.get(nums1[i])+1;
map.put(nums1[i],count);
}else{
map.put(nums1[i],1);
}
}
for(int i=0;i<nums2.length;i++){
if(map.containsKey(nums2[i])){
list.add(nums2[i]);
if((int)map.get(nums2[i]) > 1){
int count = (int)map.get(nums2[i])-1;
map.put(nums2[i],count);
}else{
map.remove(nums2[i]);
}
}
}
int[] sum = new int[list.size()];
for(int i=0;i<sum.length;i++){
sum[i] = (int)list.get(i);
}
return sum;
}
}