题解 | #50.两数之和#

两数之和

http://www.nowcoder.com/practice/20ef0972485e41019e39543e8e895b7f

哈希

  • 创建一个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
};
全部评论

相关推荐

09-18 20:41
门头沟学院 Java
要个offer怎么这...:哈哈哈哈哈哈,我也拿了0x10000000个offer,秋招温啦啦啦,好开心
我的秋招日记
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务