文章目录
 - @[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