该程序的目标是查看数组中的一个输入是否可以是其他输入的任何组合的总和。我理解它背后的理论,并提出了如何解决它,但我不知道如何实现它。我决定从最小到最大排序数组然后我想我会从比较数字对比以下输入然后使用3个输入,然后是4等等但我不知道如何使用递归来解决这个问题一些方向非常有帮助,而不是寻找完整的答案谢谢!
答案 0 :(得分:0)
让我看看..
你需要一个目标总和,这是其中一个论点。
到目前为止你需要一笔钱,所以那是另一笔。
Boolean IsSubsetSum(int[] sorted array, int Target,int maxIndex , int SumSoFar = 0);
这听起来像个好地方。
如果SumSoFar ==目标
返回true
否则,如果maxIndex == 0
返回false
其他
将数组[maxIndex]添加到总和中并使用适当的参数重新调用..
这一步将循环遍历0..maxIndex,因此不是非常有效,但会为一个开始做。您需要根据重复调用的返回值计算返回值,如果您找到了真值,则可以提前退出。