思路: 使用map这个数据结构,map用法:
let map = new Map()
map.set(1,2) // 1 => 2
map.get(1) // 2
map.has(1) // true
循环numbers数组,将numbers[i]加入map,它的值为i+1(因为索引要从1开始),若map中存在这个target-numbers[i],则输出map中键为 target-numbers[i]的值,以及当前的i + 1组成的数组。
*
* @param numbers int整型一维数组
* @param target int整型
* @return int整型一维数组
*/
function twoSum( numbers , target ) {
// write code here
const ans = new Array(2);
let map = new Map();//用哈希表进行数据存储
let n = numbers.length;
for(let i = 0;i < n;i++){
if(map.has(target - numbers[i])){
ans[0] = map.get(target - numbers[i]) + 1;
ans[1] = i + 1;
break;
}else{
map.set(numbers[i],i);
}
}
return ans;
}
module.exports = {
twoSum : twoSum
};