【发布时间】:2012-09-28 16:05:19
【问题描述】:
我知道这里讨论了很多,但我正在努力解决这个问题。
我们有一组数字,例如 [3, 1, 1, 2, 2, 1],我们需要将其分成两个子集,因此每个和都相等或差异最小。
我见过wikipedia entry、这个page(问题7)和一个blog entry。
但是列出的每个算法都只给出 YES/NO 结果,我真的不明白如何使用它们打印出两个子集(例如 S1 = {5, 4} 和 S2 = {5, 3, 3}) .我在这里错过了什么?
【问题讨论】:
-
您可能可以通过向后遍历计算表来获取子集。这是动态规划问题中的标准策略。
-
好吧,你能详细说明一下吗?
-
您的列表中是否有最大数量的数字,如果有,它是多少?如果算法产生的解决方案非常接近最优但不一定是最优的,那是否足够好?
-
没有最大数量,我真的需要最好的解决方案 :-)
标签: algorithm