Intersection of Two Arrays II
Example
Input: nums1 = [1,2,2,1], nums2 = [2,2]
Output: [2,2]Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
Output: [4,9]Note
Code
Last updated
Input: nums1 = [1,2,2,1], nums2 = [2,2]
Output: [2,2]Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
Output: [4,9]Last updated
public int[] intersect2(int[] nums1, int[] nums2) {
List<Integer> res = new ArrayList<Integer>();
Arrays.sort(nums1);
Arrays.sort(nums2);
for(int i = 0, j = 0; i< nums1.length && j<nums2.length;){
if(nums1[i]<nums2[j]){
i++;
}
else if(nums1[i] == nums2[j]){
res.add(nums1[i]);
i++;
j++;
}
else{
j++;
}
}
int[] result = new int[res.size()];
for(int i = 0; i<res.size();i++){
result[i] = res.get(i);
}
return result;
}public int[] intersect(int[] nums1, int[] nums2) {
List<Integer> res = new ArrayList<Integer>();
HashMap<Integer, Integer> map = new HashMap<>();
for(int i = 0; i < nums1.length; i++){
if(map.containsKey(nums1[i]))
map.put(nums1[i], map.get(nums1[i]) + 1);
else
map.put(nums1[i], 1);
}
for(int i = 0; i < nums2.length; i++){
if(map.containsKey(nums2[i])){
if(map.get(nums2[i]) > 0){
res.add(nums2[i]);
map.put(nums2[i], map.get(nums2[i]) - 1);
}
}
}
int[] result = new int[res.size()];
for(int i = 0; i<res.size();i++){
result[i] = res.get(i);
}
return result;
}