错误:第9行的索引列表超出范围
尝试了一些改动,但仍然无法找出问题所在。谢谢你的帮助。代码:
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
ans = []
for i in nums:
for j in nums:
if i == j:
break
**elif nums[i]+nums[j] == target:**
ans.append(i)
ans.append(j)
j += 1
i += 1
return ans
1条答案
按热度按时间iyr7buue1#
您希望迭代索引,而不是值。改变
for
循环如下。同时也要去掉i
及j
. 增量由range
:添加
range
原因i
及j
迭代列表索引而不是列表值。请注意,您可以消除的循环测试
i == j
通过将内部范围更改为从开始i+1
:如果要将列表中的索引配对,可以替换
append
致电:这将把每一对附加为一个单独的两个元素
tuple
,而不是作为两个顶级列表值。你也可以使用
itertools.combinations
为您处理嵌套循环。这是一个使用itertools
,并将结果成对附加:虽然查看了问题描述,但它表示只有一个解决方案,因此您可以返回找到的第一个解决方案: