【发布时间】:2011-04-19 00:29:22
【问题描述】:
给定一个元素数组(所有元素都是唯一的),给定一个总和
s 找到所有总和为 s 的子集。
对于前数组{5,9,1,3,4,2,6,7,11,10}
总和是 10
可能的子集是{10}, {6,4}, {7,3}, {5,3,2}, {6,3,1} 等。
可能还有更多。
还可以找到这些子集的总数。
请帮我解决这个问题..
【问题讨论】:
-
作为这个似乎的作业,我建议发布你迄今为止尝试过的内容,以便我们帮助你完成这项工作
-
这是 NP 完整的。然后进行详尽的搜索。
-
@missingno:搜索不一定是详尽的:您不需要使用输入数组中值大于目标总和的元素
-
@MarcoS:当然你可以在很多情况下修剪搜索树,或者尝试在这里和那里利用一些 simetry(以提高实践中的运行时间),但没有这样的策略会使渐近行为比在这种情况下进行详尽的搜索。
标签: algorithm