问题描述
第一版代码,复杂度为n平方
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
for i in range(len(nums)-1):
summand = target-nums[i]
for j in range(i+1,len(nums)):
if nums[j]==summand:
return [i,j]
O(n)的解法是通过查表的方法来解决速度果然快上不少
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
d = {}
for i,n in enumerate(nums):
m = target-n
if m in d:
return [d[m],i]
else:
d[n]=i