暴力是n平方,接下来介绍O(n)的python实现
class Solution:
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
data = {}
for index, value in enumerate(nums):
if target - value in data:
return data[target-value] , index
data[value] = index
这个极大提升了速度,只用遍历一遍列表,因为字典内的查找是常量操作,所以是O(n)
每次检查我们target - value 在不在data中也即我们缺的那一部分有没有被记录,如果没有就记录一下,找一下个,如果有就输出索引。