这是我用Python刷的第一个题。我刚开始用python,并且第一次刷leetCode,和我以前刷过的网站不太一样,我还是按以前的办法处理,导致浪费了很多时间去,但是体验挺不错的,同时也感觉到了英语的重要性。
一开始用暴力破解,时间复杂度为n的平方,在第18个测试用例上导致超时。所以必须得换,但是没想出来[衰]。看到网上有这种方法,就翻译为python了。
class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
length = len(nums)
d = {}
index = 0
while index < length:
if d.get(target-nums[index],-1) == -1:
#若target-nums[index]不在d中,则把nums[index]添加到d,方便快速访问
d[nums[index]] = index
index = index + 1 #下标加1,老以为是c语言中,自动加1
else:
return d.get(target-nums[index]),index #返回下标