/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
// twoSum(nums,target);
var twoSum = function(nums, target) {
// 方法一:
// var result=[];
// // 遍历所给数组,对每一个数找到差是否存在
// for(var i=0; i<nums.length; i++){
// var cha = target - nums[i];
// for(var j=i+1; j<nums.length; j++){
// if(nums[j]==cha){
// // 找到组合,进行存储
// result.push(i);
// result.push(j);
// return result;
// }
// }
// }
// 方法二:hash
var hash = new Map();
for(var i=0; i<nums.length; i++){
var cha = target - nums[i];
if(hash.has(cha)){
// 已存在,返回组合
return [i,hash.get(cha)];
}
//不存在,则添加
hash.set(nums[i],i);
}
};
法二中的知识点:
1.hash.get // 根据所给的key查找value
2.hash.has // 判断hash中是否存在某一key
3.hash.set // 赋值