一、题目
二、分析
这道题我们可以考虑用哈希的方式实现。我们的目标是找到两数之和等于target的下标,遍历数组nums,如果target-nums[i]在哈希表里,则说明这两数之和为target。
例如[2,7,11,15],首先遍历2, 9-2=7不在哈希表里,将hash[2]=0;遍历7,9-7=2在哈希表里,取出[hash[2],1]返回。
三、代码
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
hashtable = dict()
for i in range(len(nums)):
if target-nums[i] in hashtable:
return [hashtable[target-nums[i]], i]
hashtable[nums[i]] = i
四、复杂度分析
时间复杂度:O(n)
空间复杂度:O(1)