gpt4 book ai didi

python - 求列表中三个和的个数

转载 作者:行者123 更新时间:2023-11-30 22:00:49 24 4
gpt4 key购买 nike

如果给你一个列表

numList = [1,2,3,4,5,6,7]

并且要求您找出与特定数字相加的三个和的数量

target = 10

你如何得出答案?

例如,组合:[1,3,6], [1,2,7], [2,3,5], [1,4,5]将导致返回值为 4

我知道如何使用基于散列的函数使用下面的代码得出解决方案的一三和,但不确定如何添加所有唯一的三和解决方案。

def find3Numbers(A,arr_size,sum): 
for i in range(0,arr_size-1):
#Find pair in subarray A[i+1..n-1]
# with sum equal to sum - A[i]
s = set()
curr_sum = sum - A[i]
for j in range(i+1,arr_size):
if (curr_sum - A[j]) in s:
print("Triplet is", A[i],
", ", A[j], ", ", curr_sum-A[j])
return True
s.add(A[j])

return False

最佳答案

使用itertools.combinations

from itertools import combinations

numList = [1,2,3,4,5,6,7]

def check(value):
return sum(value) == 10

filtered = list(filter(check, list(combinations(numList, 3))))
print(filtered)
#[(1, 2, 7), (1, 3, 6), (1, 4, 5), (2, 3, 5)]

Combinations 找到所有可能的组合,然后我将其过滤为仅包含总和为 10 的组合

关于python - 求列表中三个和的个数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54228718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com