← 返回归档
力扣简单

力扣-1. 两数之和

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。

Published
Reading
1 分钟
Version
07

https://leetcode.cn/problems/two-sum/

「找到另一个数字,使两个数字满足某种关系」

核心只有三个动作:

1. 算出我需要什么
2. 去 Map 里找
3. 找不到就把当前元素存进去

最值得记住的一句话就是:

不要每次都重新查找;可以把之前的信息保存下来。

function twoSum(nums: number[], target: number): number[] {
  const map = new Map<number, number>()

  for (let i = 0; i < nums.length; i++) {
    const current = nums[i]
    const need = target - current

    if (map.has(need)) {
      return [map.get(need)!, i]
    }

    map.set(current, i)
  }

  return []
}

时间复杂度:O(n),空间复杂度:O(n)。