不知道为什么返回[0,1,1,0]而不返回[0,1]
def TwoSum(nums,target):
c = []
for i in range(0,len(nums)):
for j in range(0,len(nums)):
if nums[i] + nums[j] == target:
c.append(i)
c.append(j)
break
return c
print(TwoSum([2, 7, 11, 15], 9))
答案 0 :(得分:1)
简单地说,您的代码的问题是它扫描(2,7)两次:向前和向后。
首先,它在外部for循环中选择2,并发现7有效,因为2 + 7 =9。因此,它将2和7的位置加到c。现在,c = [0,1]
但是随后它在外部for循环中选择7,并发现2有效,因为7 + 2 =9。因此,它将7和2的位置加到c上。现在,c = [0,1,1,0]
答案 1 :(得分:0)
break
仅停止内部循环,如果要立即返回,只需使用return c
请告诉我这是否可行:
def TwoSum(nums,target):
c = []
for i in range(0,len(nums)):
for j in range(0,len(nums)):
if nums[i] + nums[j] == target:
c.append(i)
c.append(j)
return c
return c
print(TwoSum([2, 7, 11, 15], 9))