给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
思路
暴力解法我就不说了,我们来看一下map解法
- 首先我们要明白两个重要的变量: 数组下标的值和数组的下标,很多人被这两个搞混了
- target-nums[i]+num[i]=target这是一个非常重要的思路,核心解法在这
- map具有记忆功能,每一次遍历都可以记录nums[i],i
- 遍历判断是否含由target-nums[i]的key,如果当前key的值,就返回当前key的值和当前的下标(目标结果)
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
let arr=[];
let map=new Map();
for(let i=0;i<nums.length;i++){
if(map.has(target-nums[i])){
return [map.get(target-nums[i]),i];
}
map.set(nums[i],i);
}
};