1. Two Sum
1.1 暴力解法
def twoSum(self, nums: List[int], target: int) -> List[int]: for i in range(len(nums)): for j in range(len(nums)-1): if nums[i] + nums[j+1] == target: if i < j + 1: a = [i, j+1] return a
使用暴力解法,但会导致超时,Time Limit Exceeded,之后参考别人的代码。
1.2 优化解法
def twoSum(self, nums: List[int], target: int) -> List[int]: d ={} for i, element in enumerate(nums): if target-element in d: return [d[target - element], i] d[element] = i
优化点如下:
for i in range(len(nums)): #修改为 for i in element in enumerate(nums): #此种写法更为优美 for j in range(len(nums) -1): #修改为 if target - element in d #将原本需要的两层循环变为一层循环,速度更快
#引入字典,查找速度更快