leetcode350-两个数组的交集II
leetcode 350
思路
先对nums1中的每个数出现的频次进行一个记录,然后遍历nums2,判断是否对这个数有记录,并且值大于0,如果>0那么这个数是交集的数,因为这时候nums1中还有这个数可以匹配上
实现
var intersect = function (nums1, nums2) {
const map = new Map();
const result = [];
nums1.forEach(item => {
// 记录出现的频次
map.set(item, (map.get(item) || 0) + 1)
})
nums2.forEach(item => {
// 如果是0或者undefined不会进入
if (map.get(item)) {
result.push(item);
// 加入以后将频次-1
map.set(item, map.get(item) - 1);
}
})
return result;
};