解法
解法1
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
for(let i = 0;i<nums.length;i++){
//看用目标值 - 当前值 得到的值 看时候在当前值后面出现 使用数组API
let lastIndex = nums.indexOf(target - nums[i],i+1)
if(lastIndex != -1 ){
return [i,lastIndex]
break
}
}
};
解法2
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
//使用map来缓存数据,空间换时间
let map = new Map()
for(let i = 0;i<nums.length;i++){
let num = target - nums[i]
//看map中是否有差值,有的话直接返回下标,没有的话加入map
if(map.has(num)){
return [map.get(num),i]
}else {
map.set(nums[i],i)
}
}
};``