# 两数之和 (opens new window)
- 难度:Easy
- 标签:Map
# 刷题思路
- [x] 双重遍历
- [x] Map暂存
# 方法 1 双重遍历
- 复杂度:
- 时间 O(N^2)
- 空间 O(N^2)
var twoSum = function(nums, target) {
const len = nums.length
for (let i=0; i<len; i++) {
for (let j=i+1; j<len; j++) {
if (nums[i] + nums[j]===target && i!==j) {
return [i, j]
}
}
}
};
# 方法 2 Map暂存
- 复杂度:
- 时间 O(N). 一次遍历.
- 空间 O(N)
var twoSum = function(nums, target) {
const map = new Map()
for (let i=0, len=nums.length; i<len; i++) {
if (map.has(nums[i])) {
return [map.get(nums[i]), i]
} else {
map.set(target-nums[i], i)
}
}
};
JS刷题记录 Leetcode-js (opens new window) 每周都会更新刷题心得或者题解, 你的点赞或 star 都将助力我产出更好内容~