我有一个固定的权重列表:
int[] weights = new int[] { 10, 15, 20 };
和一个目标:
int target = 28;
我正在寻找一种算法来表示(允许重复)target中的元素总和,weights使得target匹配或超出,实现最接近的匹配target,并且在此范围内,使用的权重数量被最小化。
因此,对于上述输入,我希望返回10 20或15 15返回,因为30我们可以得到尽可能接近的结果,并且在 make 的选项中30,这两个都比10 10 10.
使用targetof 39,输出应该是20 20而不是,比如说,15 15 10或10 10 10 10。
使用 a target,14输出应该是15。
除了常规的 foreach 循环之外,这里还有什么好的方法吗?我正在考虑检索数组中可用的最大值并检查目标是否为负,如果不是,那么让我们去寻找下一个值。
这不是家庭作业:)

