文章目录
- @[toc]
- 题目描述
- 样例输入输出与解释
- 样例1
- 样例2
- 样例3
- 提示
- 进阶
- Python实现
- 哈希表
文章目录
- @[toc]
- 题目描述
- 样例输入输出与解释
- 样例1
- 样例2
- 样例3
- 提示
- 进阶
- Python实现
- 哈希表
个人主页:丷从心·
系列专栏:LeetCode
刷题指南:LeetCode刷题指南
题目描述
- 给定一个整数数组
nums
和一个整数目标值target
,请在该数组中找出和为目标值target
的那两个整数,并返回它们的数组下标 - 可以假设每种输入只会对应一个答案,但是,数组中同一个元素在答案里不能重复出现
- 可以按任意顺序返回答案
样例输入输出与解释
样例1
- 输入:
nums = [2,7,11,15]
,target = 9
- 输出:
[0,1]
- 解释:因为
nums[0] + nums[1] == 9
,返回[0, 1]
样例2
- 输入:
nums = [3,2,4]
,target = 6
- 输出:
[1,2]
样例3
- 输入:
nums = [3,3]
,target = 6
- 输出:
[0,1]
提示
2 <= nums.length <= 10^4
-109 <= nums[i] <= 10^9
-10^9 <= target <= 10^9
- 只会存在一个有效答案
进阶
- 想出一个时间复杂度小于
O(n^2)
的算法
Python实现
哈希表
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
hash_table = dict()
for i, num in enumerate(nums):
if target - num in hash_table:
return [hash_table[target - num], i]
hash_table[nums[i]] = i