题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
实例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]
分析:看到返回数组下标且和数组的值有关系,可以用哈希
来做,在python中可以使用dic{}
,
需要指出的是,需要额外生成一个空间来存放数值和下标,比较的话不是当前数字和数组后面的数相比,而是和在字典里面的数字相比。
python代码:
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
dic = {}
for idx,key in enumerate(nums):
if target-key in dic:
return [dic[target-key],idx]
dic[key] = idx
当遍历key值的时候,我们是需要和dic里面相比较,而不是与nums后面的值相比较