gpt4 book ai didi

algorithm - 集合中有重复数字的子集求和算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:52:40 25 4
gpt4 key购买 nike

我有一个包含自然数的集合 S 和一个数字目标 t。我想知道
我们如何找到这些数字的可能组合的数量,这些数字总和为目标 t。

总和等于目标 t。

Example
target 6
Set s {3,8,1,2}
Solution 3+3, 3+2+1, 1+1+1+3, 2+2+2, 2+1+1+2, 2+1+1+1+1, 1+1+1+1+1+1
Total No of solutions possible 7

对此有什么有效的算法?

最佳答案

如果目标相当小,您可以使用动态规划来获得 O(|S| * t) 的解决方案。这是 Python 中的示例代码:

def combinations(S, t):
dp = [1] + [0] * t
for i in S:
for j in range(0, t - i + 1):
dp[j + i] += dp[j]
return dp[t]

关于algorithm - 集合中有重复数字的子集求和算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11929938/

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