题解 | #两数之和#

两数之和

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

思路: 使用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
};

alt

全部评论
ans[0] = map.get(target - numbers[i]) + 1; ans[1] = i + 1; 为啥这里都要+1
点赞 回复 分享
发布于 2022-09-26 20:57 广东

相关推荐

强大的马里奥:不太可能,我校计算机硕士就业率99%
点赞 评论 收藏
分享
评论
10
收藏
分享

创作者周榜

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