在leetcode中的程序中接收NULL输出

时间:2017-03-17 02:25:53

标签: python

我正在使用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] 对于问题中的例子

1 个答案:

答案 0 :(得分:0)

我认为你应该使用k = target - ei是索引,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]