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 #將本來須要的兩層循環變爲一層循環,速度更快
#引入字典,查找速度更快