算法:我可以达到的最大数量

时间:2014-10-16 11:53:49

标签: c++ algorithm knapsack-problem

我在数组中得到了一组数字。 (最多110组数字)

例如,我在数组中有3个数字:

5.0 , 90.0, 8.5

我有另一个号码。让我们在这个例子中说98.6

如何确定我可以添加的最大数量,其总和低于该单个数字(98.6)?

在这个例子中,我们可以选择低于98.6的90.0和8.5。

1 个答案:

答案 0 :(得分:-2)

“如何确定我可以添加的最大数字,其总和低于该单个数字”

这很简单,只需对数组进行排序(可能使用merge-sort),从开头到sum连续添加数字小于给定的数字。

编辑问题太过分了: -

如果您只想在支架中放置最大数字而不关心总和与给定数字的接近程度,则上面建议的解决方案是有效的。如果你关心后者那么google“背包问题”。