class Solution: def twoSum(self, nums: list, target: int) -> list: C=len(nums) LS=[] max=0 for i in range(C-1): for item in range(i+1,C): if nums[i]+nums[item]==target: LS.append([i,item]) # print(max) if max==0: max=i+item # print(max) else: if i+item<max: print(max) max=i+item print(max) LS.append([i,item]) print(LS) print(max) Solution.twoSum(self=0,nums = [2, 7, 6, 15,3],target = 9)找出LS添加不出数据的原因
时间: 2024-02-10 11:11:05 浏览: 138
js代码-两数之和 输入:nums = [2,7,11,15], target = 9 输出:[0,1]
根据代码,LS 是一个列表,用于存储满足要求的数对,但是在代码中没有添加任何条件判断,导致 LS 列表中可能会出现重复的数对。这是因为在代码中没有考虑到数对的顺序,例如 [0, 1] 和 [1, 0] 是等价的,但是代码中会将它们都添加到 LS 列表中。为了避免重复,可以在添加数对之前,先判断这个数对是否已经存在于 LS 列表中,如果不存在才添加。修改代码可以尝试如下:
```
class Solution:
def twoSum(self, nums: list, target: int) -> list:
C=len(nums)
LS=[]
max=0
for i in range(C-1):
for item in range(i+1,C):
if nums[i]+nums[item]==target:
if [i, item] not in LS and [item, i] not in LS:
LS.append([i, item])
if max==0:
max=i+item
else:
if i+item<max:
max=i+item
print(LS)
print(max)
Solution.twoSum(self=0,nums = [2, 7, 6, 15,3],target = 9)
```
这样就可以避免重复添加数对了。
阅读全文