当前位置: 首页 > 知识库问答 >
问题:

从给定整数数组的LeetCode中,返回两个数字的索引,以便它们相加到特定目标

巫马玉堂
2023-03-14

这是一个关于LeetCode的练习。我得到一个例外

第15行的UnboundLocalError。

为什么?如何修复它?

class Solution(object):
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        self.nums = []
        self.target = int

        for i in range(len(nums)):
            for j in range(i + 1, len(nums)):
                if nums[i] + nums[j] == target:
                    a = []
                return a[i, j]

共有3个答案

姚昊焱
2023-03-14

让我们检查一下您的代码:

第一个场景(没有与目标匹配的组合)

该方法返回一个尚未定义的值:

return a[i, j]

但是a从未定义过!

第二个场景(组合匹配目标)

该方法返回初始化的值:

a = []

但是,我们从未在索引[i,j]处设置值,因此这仍然不起作用:

return a[i, j]

解决方案

当您找到与目标相等的组合时,返回它们的索引:

class Solution(object):
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        self.nums = []
        self.target = int

        for i in range(len(nums)):
            for j in range(i + 1, len(nums)):
                if nums[i] + nums[j] == target:
                    return i, j

if __name__ == "__main__":
    a = Solution()
    print a.twoSum([1,2,3,4,5], 5)
易宏阔
2023-03-14

也许你可以尝试一下:

if self.nums[i] + self.nums[j] == target:
#  ^^^^^          ^^^^^
唐阳飙
2023-03-14

我相信这会奏效:

class Solution:
def twoSum(self, nums, target):
    """
    :type nums: List[int]
    :type target: int
    :rtype: List[int]
    """
    n = len(nums)
    for i in range(n):
        for j in  range(i+1, n):
            if nums[i] + nums[j] == target:
                return [i,j]
 类似资料:
  • 给定一个整数数组,返回两个数字的索引,使它们相加到一个特定的目标。 例子: 给定nums=,target=6, 因为=24=6 。 解决方案 上面的代码在其他情况下有效,但在本例中无效。 预期结果 输出 例如,我尝试使用不同的数字数组和不同的目标,即使你改变数字的顺序,它也能工作 例子: 新数组:,目标=9, 输出:。 我不明白这个解决方案出了什么问题,我希望有人能解释一下。谢谢

  • 我想解决以下问题: 给定一个整数数组,返回两个数字的索引,使它们相加到一个特定的目标。 我将下面的数组作为输入-[2,7,11,15],目标为9。 因为nums[0]nums[1]=27=9,所以返回[0,1]。 这是我的密码- 这是解决我问题的正确方法吗?

  • 想改进这个问题吗?更新问题,让它只通过编辑这篇文章来关注一个问题。 给出了一个由N个整数组成的零索引数组A。此数组的平衡指数是任意整数P,因此0≤ P 例如,考虑以下由N = 8个元素组成的数组A: P = 1是这个数组的平衡指数,因为: P=3是该数组的平衡指数,因为: P = 7也是一个均衡指数,因为: 并且没有索引大于7的元素。 P = 8 不是均衡指数,因为它不满足条件 0 ≤ P 现在我

  • 问题内容: 我这周一直在修改python,但我陷入了困境。 如果我有这样的2D列表: 而我做到了 它会回来 但是,我想要列表中第一面的内容的索引,像这样 它会返回 有什么可以做到的吗? 干杯 问题答案: 尝试这个: 用法:

  • 给定两个数组,是否有一种numpy非循环方法来检查数组之间的每个第i个索引是否匹配,即如果a[i]==b[i],是否检查每个i? 我想这已经被问过了,但是我找不到我要找的东西,如果是的话,我很抱歉。

  • 问题内容: 我试图从我的int数组返回两个最大的整数。我能够返回最大和最小的罚款,但无法获得返回两个最大罚款的算法。任何帮助在这里都将不胜感激。 请原谅我的代码中的任何错误。这是一次练习,问题取自去年大学的考试材料。 这是我的代码: 问题答案: 你可以写