题目链接:https://leetcode-cn.com/problems/intersection-of-two-arrays-ii/
题目如下:
class Solution {
public int[] intersect(int[] nums1, int[] nums2) {
HashMap<Integer,Integer> hashmap=new HashMap<Integer,Integer>();
for(int i=0;i<nums1.length;i++){
//获取指定 key 对应对 value,如果找不到 key ,则返回设置的默认值
int count=hashmap.getOrDefault(nums1[i],0)+1;
hashmap.put(nums1[i],count);
}
int[] array=new int[nums1.length];
int num=0;//构成交集元素的数量
for(int i=0;i<nums2.length;i++){
int count=hashmap.getOrDefault(nums2[i],0);
if(count>0){
array[num++]=nums2[i];
count--;
if(count>0) hashmap.put(nums2[i],count);
else hashmap.remove(nums2[i]);
}
}
return Arrays.copyOfRange(array,0,num);
}
}