实现思路
1 方法1: Map
- 思维关键词: Map; v1 + v2
- 其核心思想是: 「先查找再存储」
参考文档
代码实现
1 方法1: Map 时间复杂度: 均摊O(1); 空间复杂度(n)
function twoSum(nums: number[], target: number): number[] {
// 存储之前出现过的元素,key为数字值,value为数字值所在的索引
let seen = new Map()
for (let i = 0; i < nums.length; i++) {
const v2 = target - nums[i]
if (seen.has(v2)) return [seen.get(v2), i]
seen.set(nums[i], i)
}
};