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,以后参考别人的代码。算法
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 #将本来须要的两层循环变为一层循环,速度更快
#引入字典,查找速度更快