问题描述(https://leetcode-cn.com/problems/two-sum/description/)
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
JS答案:
用Map实现:
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
let myMap = new Map();
let i = 0;
nums.map(num => { //遍历一遍将数组存入Map中
myMap.set(num, i);
i++;
});
for (i = 0; i < nums.length; i++) { //查找正确解
if (myMap.get(target-nums[i])) {
let res = [];
res.push(i);
res.push(myMap.get(target-nums[i]));
return res;
}
}
};

京公网安备 11010502036488号