LeetCode Hot 100:两数之和

用哈希表把 Two Sum 的查找降到 O(1),看清补数查找为什么要先查后存。

两数之和:用哈希表把查找降到 O(1)

这期讲 LeetCode Hot 100 的 Two Sum。题目要求在整数数组中找到两个数,使它们相加等于 target,并返回这两个数的下标;每个输入只有一个答案,同一个元素不能使用两次。
视频里的核心方法是:扫描数组时,用 Map 记录已经见过的数字和下标。每次先计算当前数字需要的补数,再去表里查;命中就返回答案,没命中才把当前数字写入表。这样可以把暴力枚举的两层循环,改成一次线性扫描。
function twoSum(nums, target) {
  const seen = new Map();

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

if (seen.has(need)) {
      return [seen.get(need), i];
    }

seen.set(nums[i], i);
  }
}

来源

関連コンテンツ

  • ログインするとコメントできます。
More from this channel