## 题解 | #两数之和#

122 阅读1分钟

题解 | #两数之和#

发表于 2021-12-27 17:15:50

思路: 使用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){ const ans =new Array(2); let map = new Map(); let n= numbers.length; for(let i=;i<n;i++){ if(map.has(target-numbers[i])){ ans[o] = map.get(target-numbers[i])+1; ans[1] = i+1; }else{ map.set(numbers[i],i); }

} return ans; }

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 };