我正在使用python中的leetcode问题,问题是:
给定已按升序排序的整数数组,找到两个数字,使它们相加到特定目标数。
函数twoSum应返回两个数字的索引,以便它们相加到目标,其中index1必须小于index2。请注意,您返回的答案(index1和index2)不是从零开始的。
您可以假设每个输入只有一个解决方案,并且您可能不会两次使用相同的元素。
输入:数字= {2,7,11,15},目标= 9 输出:index1 = 1,index2 = 2
我为这个问题写的代码是:
class Solution():
def twoSum(self, nums, target):
d = {}
for i, e in enumerate(nums):
k = target - i
if k in d:
return [d[k], i]
d[e] = i
但我收到一个NULL输出,无法找出原因
预期答案是
[1,2]
对于问题中的例子
答案 0 :(得分:0)
我认为你应该使用k = target - e
,i
是索引,e
是值,所以也许你想要target-e
:
def twoSum(nums, target):
d = {}
for i, e in enumerate(nums):
k = target - e
if k in d:
return [d[k], i]
d[e] = i
print twoSum([2,7,11,15],9)
输出:
[0,1]