题目:
给定⼀个整数数组 nums 和⼀个⽬标值 target,请你在该数组中找出和为⽬标值的那两个整数,并返回他们的数组下标。假设每种输⼊只会对应⼀个答案。但是,数组中同⼀个元素不能使⽤两遍。
示例:输入 nums = [2, 7, 11, 15], target = 9返回 [0, 1]
思路:
-
使⽤⼀个map对象来储存遍历过的数字以及对应的索引值
-
键:target - arr[ i ]——实现快速定位
-
值:索引值 i
//两数之和
function twoSum(arr, target) {
const map = {};
for (let i = 0; i < arr.length; i++) {
// 查找成功
if (map[arr[i]] !== undefined) return [map[arr[i]], i];
// 保存遍历记录
map[target - arr[i]] = i;
}
return -1;
}