哈希

  • 创建一个map
  • 遍历数组,如果在map中找到target-numbers[I],则返回结果
  • 否则,加入map中

注意:

  • map.get()返回下标或者undefined
  • 返回的是[another+1,i+1]而不是[i+1,another+1],比如[3,2,4],把2加入,把4加入找到了2, 因此返回的是[another+1,i+1]
function twoSum( numbers ,  target ) {
  let map = new Map();
  for(let i=0; i<numbers.length; i++){
    let another = map.get(target-numbers[i])
    if( another!=undefined){
      return [another+1,i+1];
    }
    map.set(numbers[i],i);
  }
}
module.exports = {
    twoSum : twoSum
};