Python Leetcode中的两个和

时间:2018-12-13 18:16:27

标签: python

大家好,我是python新手,我正在Leetcode中解决两个问题 这里是描述: 给定一个整数数组,返回两个数字的索引,以便它们加起来成为一个特定的目标。

您可以假设每个输入都只有一个解决方案,并且您可能不会两次使用相同的元素。

示例:

给出数字= [2,7,11,15],目标= 9,

因为nums [0] + nums [1] = 2 + 7 = 9, 返回[0,1]。

我的代码在这里:

 def twoSum(self, nums, target):
    num=[]
    for i in range(len(nums)):
        index=  target-nums[i]
        if(index in nums):
            num.append(i)
    return num

但是我按下提交按钮时出错了

Input [3,2,4] 6
Output
[0,1,2]
Expected
[1,2]

我不知道为什么

2 个答案:

答案 0 :(得分:1)

def twoSum(nums, target):
    container = {}
    for i, num in enumerate(nums):
        if target - num in container:
            return [container[target - num], i]
        container[num] = i
    return

答案 1 :(得分:-3)

这里去!

nums = [3,2,4]
target = 6


def twoSum(nums, target):
    for i in range(len(nums)):
        elem = target - nums[i]

        if elem in nums and elem != nums[i]:
            return [i, nums.index(elem)]

print(
    twoSum(nums, target)
)