两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
解题思路
- 由题可见,nums中的每一个元素只能对应一个值相加能得到target
- 我们可以使用target分别减去nums中的每一个元素得到一个对应值,如果对应值未在容器中出现,那么我们需要将nums此时的元素存入容器,一边后续遍历查找结果
- 如果所得值存在于容器中,那么直接返回结果
代码如下:
var twoSum = function(nums, target) {
let map = new Map();
for(let i = 0, len = nums.length; i < len; i++){
if(map.has(target - nums[i])){
return [map.get(target - nums[i]), i];
}else{
map.set(nums[i], i);
}
}
return [];
};