给定 num = [3,4,2],目标 = 6,因为 nums[1] + nums[2] = 6,返回 [1,2]



这段代码有什么问题? 代码给了我正确的结果,但在提交 Leet 代码时没有被接受?

def twoSum(self, nums, target):
nums=[2,7,11,15]
target=9
ret=[]
for i in range (len(nums)):
ret.append(i)
if nums[i] + nums[i+1] == target :
a=nums.index(nums[i+1])
ret.append(a)
return(ret)
break
elif nums[i] + nums[i+2] == target:
a=nums.index(nums[i+2])
ret.append(a)
return(ret)
break
else:
ret.pop(0)

重点是在代码中使用 return 是无用的,因为你没有使用函数。 当您调用 nums[i] + nums[i+1] == 目标和 nums[i] + nums[i+2] == 目标时 在您的问题中 nums=[2,7,11,15] 前两个元素给出总和 9,所以这就是它适合您的原因。 认为如果 nums=[11,15,2,1],那么它将抛出列表索引超出范围,因为在第二个条件 nums[i] + nums[i+2] 中,您正在访问超出大小的元素。

像这样替换 for 循环 i 在范围内 (len(nums(//2(: 并删除编码和最后一行打印(ret( 中的返回

最新更新