var intersect = function(nums1, nums2) {
let n=nums1.length
let m=nums2.length
//用n保存长度小的数组
if(n>m){
n=nums2
m=nums1
}else{
n=nums1
m=nums2
}
let map1=new Map()
let arr=new Array() //用于保存结果
//遍历短的数组,以出现的数字为key,出现的次数为value进行保存在map中
for(let i=0;i<n.length;i++){
let d=map1.get(n[i])||0
map1.set(n[i],d+1)
}
for(let y=0;y<m.length;y++){
//如果消耗次数已经到0,则不再加入结果arr
if(map1.has(m[y])&&map1.get(m[y])>0){
arr.push(m[y])
let x=map1.get(m[y])
map1.set(m[y],x-1)
}
}
return arr
};
力扣350.两个数组的交集 II(JavaScript)
最新推荐文章于 2024-07-26 20:46:33 发布
关键词由CSDN通过智能技术生成