写点什么

LeetCode 题解:1. 两数之和,JavaScript,HashMap 单词遍历,详细注释

用户头像
Lee Chen
关注
发布于: 2020 年 07 月 22 日

原题链接:https://leetcode-cn.com/problems/two-sum/



解题思路:



  1. 遍历数组,每次保存target - nums[index]和index。

  2. 下次遍历时,如果在Map中找到了target - nums[index],就表示找到了两个数的和为target。

  3. 此时可以直接从Map中取出保存的index,与当前值的index组合则为结果。



```javascript []

/**

* @param {number[]} nums

* @param {number} target

* @return {number[]}

*/

var twoSum = function (nums, target) {

// 用Map保存已遍历的index结果

let map = new Map();



for (let index = 0; index < nums.length; index++) {

// 判断当前值是否已在Map中存储,如果有就表示找到了两个数可以想加等于target

if (typeof map.get(nums[index]) === 'number') {

// 返回已保存的index和当前值的index

return [map.get(nums[index]), index];

}

// 将当前值与target的差,以及当前值的index保持在Map

// 当遍历到target - nums[index],就表示找到了两数之和为target,可以直接把当前的index取出

map.set(target - nums[index], index);

}

};

```



发布于: 2020 年 07 月 22 日阅读数: 51
用户头像

Lee Chen

关注

还未添加个人签名 2018.08.29 加入

还未添加个人简介

评论

发布
暂无评论
LeetCode题解:1. 两数之和,JavaScript,HashMap单词遍历,详细注释