- 两个数组的交集 II
给定两个数组,编写一个函数来计算它们的交集。
// Map 是一组键值对的结构,具有极快的查找速度。
// new Map 创建一个新的空集合
// map.has 如果映射包含指定元素 返回true
// map.set 添加一个新建元素到映射
// map.get 返回映射中的指定元素
// map.delete 从映射中删除指定元素
// map.clear 从映射中删除所有元素
// map.forEach 对映射中的每个元素进行指定操作
// map.toString 返回映射中的字符串形式
// map.valueOf 返回指定对象的原始值
//-----------------------------------------
let num1=[4,9,5]
let num2=[9,4,9,8,4]
var intersect = function(nums1, nums2) {
let hash=new Map()
let res=[]
for(let i=0 ;i<nums1.length;i++){
if(hash.has(nums1[i])){
hash.set(nums1[i] , hash.get(nums1[i]) + 1)
}else{
hash.set(nums1[i] , 1)
}
}
for(let j=0 ; j< nums2.length;j++){
let temp=nums2[j]
let hashKey=hash.get(temp)
if(hash.has(temp)){
res.push(temp)
if(hashKey > 1){
hash.set(temp , hashKey - 1 )
}else{
hash.delete(temp)
}
}
}
return res
};
let lCode= intersect(num1,num2)
- 两数之和
let nums=[2,5,5,112,5,5,11]
let target=123
var twoSum=function(nums,target){
let perView={}
for(let i=0;i<nums.length;i++){
if(perView[target-nums[i]] !=undefined){
return [perView[target-nums[i]] , i]
}
perView[nums[i]]=i
}
}