我有一个整数数组。让我们用A表示它。还有另一个数组W,其中包含与A的每个条目相关联的权重。
换句话说,与每个条目A [i]相关联的是某个权重条目W [i]。 (请注意,权重不在一个有限的集合S_w = {w1,w2,w3,w4}中,因此只有很少的可能值)问题陈述如下:从A中随机选择一个条目,以便将它们加在一起时在其各自权重之和(SUM_W)不超过的约束下为您提供最大值(SUM_A)阈值W_threshold。
一种可能是蛮力:计算A的所有排列,并为每个排列选择前n个条目,以使它们的总和SUM_W不超过W_threshold。最后,应选择给出最大SUM_A的排列。但是由于不考虑A的长度,因此由于置换计算步骤,该方案的复杂度很高。
另一个(次优)的可能性是按降序对A进行排序,然后选择前n个条目,以使它们的SUM_W不超过W_threshold。这样具有较低的复杂度,但结果将不是最佳的。
如果某人已经存在解决上述问题的算法,可以给我一些提示吗?或者,如果有人的想法比我上面描述的要好。非常感谢