【发布时间】:2012-05-23 17:49:50
【问题描述】:
可能重复:
Finding all possible combinations of numbers to reach a given sum
我必须创建从数字数组中选择数字的方法,总和将与所需的数字完全相同,或者如果不存在则选择最小的较大的数字。 这个函数的算法是什么?
public int[] selectExactSum(int[] X, int SUM) {
}
示例: 数字是:{5, 2, 8, 4, 6},所需的总和是 12。
结果将是:{2, 4, 6}
如果所需的总和为 13,则结果将是:{2, 8, 4} - 因此,在这种情况下,总和将是 14 - 第一个最小的较大的值。
如果所需的总和为 15,则可能的结果为:{5, 2, 8} 或 {5, 4, 6}。在这种情况下,返回您选择的一个 - 可能是您得到的第一个。
自定义数字和总和的算法是什么?
谢谢, 西蒙
【问题讨论】:
-
你认为@Simonxy 的方法是什么。你想到什么了吗?
-
家庭作业?如果是,请添加标签
homework -
在 sum=12 的示例中,有几种解决方案(2,4,6 也有 8,4)。应该全部找到吗?否则,这两种解决方案是等效的还是一种优于另一种?
-
有趣的问题。不明白为什么它是实用的,但不妨使用它
-
为什么要求的 sum 13 不返回 {5, 2, 6} 而实际上是 13?