- 暴力枚举:双for循环
var twoSum = function(nums, target) {
for(var i=0; i<nums.length; i++){
for(var j=i+1; j<nums.length; j++){
if(nums[i]+nums[j] === target){
return [i, j];
}
}
}
};
- 错误记录:j=0,会出现用同一个数的情况
- 哈希表
var twoSum = function(nums, target) {
let map = new Map(); //创建Map
for(let i=0; i<nums.length; i++){
let j = target - nums[i]; //判断map中是否存在target-nums[i]的key值
if(map.has(j)){ //如果j存在则返回true,否则返回false
return [map.get(j),i]; //返回j的值
}
map.set(nums[i], i); //根据键存储值
}
}