解题日期:20.08.23 map
- 这里需要一个思路转换,从「每次寻找到值相加后与target进行对比」,转变为「寻找值等于target-值的值」
- 从这个题才发现,原来js也有map……
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
let arr = []
let map = new Map()
nums.forEach(function (num, index) {
if (map.has(num)) {
num * 2 === target ? arr = [map.get(num), index] : null
} else {
map.set(num, index)
if(map.has(target-num) && index !== map.get(target - num)) {
arr = [map.get(target - num), index]
}
}
})
return arr;
};