Q33-code1- 两数之和

32 阅读1分钟

实现思路

1 方法1: Map

  • 思维关键词: Map; v1 + v2
  • 其核心思想是: 「先查找再存储」

参考文档

01- 官方实现

代码实现

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)
  } 
};