题目
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
思路
- 创建一个空哈希表
- 遍历数组,查看
target与当前元素的差是否在哈希表中。 - 若不存在,则将当前元素以key的形式存入哈希表,值为当前元素的索引值
- 若存在,则直接返回
当前元素的索引值和哈希表中存在的元素的索引值
var twoSum = function (nums, target) {
let map = {}
for (let i = 0; i < nums.length; i++) {
let number = nums[i]
let number2 = target - number
if (number2 in map) {
return [map[number2], i]
} else {
map[number] = i
}
}
}