力扣打卡:350. 两个数组的交集 II
解题思路
重点:理解数据结构HashMap,能够对key实现去重,并且能够对key进行统计
代码
class Solution {
public int[] intersect(int[] nums1, int[] nums2) {
// 重点理解数据结构HashMap,和set本质是一样的,但是增加了value的功能
HashMap<Integer,Integer> map1 = new HashMap<>();
HashMap<Integer,Integer> map2 = new HashMap<>();
for(int i:nums1) map1.put(i,map1.getOrDefault(i,0)+1);
for(int i:nums2) map2.put(i,map2.getOrDefault(i,0)+1);
List<Integer> list = new ArrayList<>();
for(Map.Entry<Integer,Integer> entry : map1.entrySet()) {
int cnt = map2.containsKey(entry.getKey()) ? Math.min(entry.getValue(),map2.get(entry.getKey())) : 0;
for(int i=0;i < cnt; i++){
list.add(entry.getKey());
}
}
int[] res = new int[list.size()];
int point = 0;
for(int i:list) res[point++] = i;
return res;
}
}