1. 两数之和

题目

1. 两数之和(简单)

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

你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。

你可以按任意顺序返回答案。

示例 1:

输入:

[2,7,11,15]
9

输出:

[0,1]

解释:因为 nums[0] + nums[1] == 9,返回 [0, 1]。

示例 2:

输入:

[3,2,4]
6

输出:

[1,2]

示例 3:

输入:

[3,3]
6

输出:

[0,1]

提示:

  • 2 <= nums.length <= 10^4
  • -10^9 <= nums[i] <= 10^9
  • -10^9 <= target <= 10^9
  • 只会存在一个有效答案

思路

哈希表一遍扫描:遍历时先查 target - num 是否已经在表中(在则直接得到答案),不在则记录 num → 下标。每个数只处理一次,时间复杂度 O(n)O(n)

代码

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        d = dict()
        for i, num in enumerate(nums):
            if target - num in d:
                return [d[target - num], i]
            else:
                d[num] = i
        return []

1. 两数之和
https://mingsm17518.github.io/2026/09/14/刷题笔记/Hot100/1. 两数之和/
作者
Ming
发布于
2026年9月14日
更新于
2026年9月14日
许可协议