给定一个整数数列,找出其中和为特定值的那两个数。
你可以假设每个输入都只会有一种答案,同样的元素不能被重用。
这个题我一开始尝试用暴力破解的方式,结果显示time out,很明显这是一个O(n^2)的负责度难度;应该尽可能用复杂度更低的算法。我的方法是,第一次遍历nums的时候就寻找target-a的数字是否存在。
class Solution:
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
for i , a in enumerate(nums):
ans = target - a
if ans in nums and i != nums.index(ans):
return i , nums.index(ans)