classSolution:deftwoSum(self, nums: List[int], target:int)-> List[int]:
data ={}for i inrange(len(nums)):
data[nums[i]]=i
for i inrange(len(nums)):
a = target-nums[i]if a in data :return i,data[a]
复杂度分析:
时间复杂度:O(n), 我们把包含有 n 个元素的列表遍历两次。由于哈希表将查找时间缩短到 O(1),所以时间复杂度为 O(n)。
classSolution:deftwoSum(self, nums: List[int], target:int)-> List[int]:
data ={}for i inrange(len(nums)):
a = target-nums[i]if a in data :return data[a],i
else:
data[nums[i]]=i
另法利用字典:(更优)
classSolution:deftwoSum(self, nums: List[int], target:int)-> List[int]:
_dict ={}for i, m inenumerate(nums):if _dict.get(target - m)isnotNone:return[i, _dict.get(target - m)]
_dict[m]= i
复杂度分析:
时间复杂度:O(n), 我们只遍历了包含有 n 个元素的列表一次。在表中进行的每次查找只花费 O(1) 的时间。