问题:
给出n个不同的正整数,整数k和一个数字 目标。在总和为目标的情况下找到k个数字。返回多少 有解决方案吗?
这里的测试用例是A [] = {1,2,3,4},k = 2,目标= 5。 有2个解决方案:[1,4]和[2,3]。 因此返回2。
我的代码是:
CuDNNLSTM
对于上面的代码,它给了我输出6(不是2); 但是,当我将以下两行更改为:
from keras.layers import CuDNNLSTM
收件人:
public class Solution {
private int res = 0;
public int kSum(int[] A, int k, int target) {
Arrays.sort(A);
DFS(A, k, target, 0 );
return res;
}
private void DFS(int[] A, int k, int target, int idx) {
if (target < 0) return;
if (k == 0) {
if (target == 0) res += 1;
return;
}
for (int i = idx; i < A.length; i++ ) {
DFS(A, k - 1, target - A[i], i + 1);
DFS(A, k, target, i + 1);
}
}
}
然后,结果变为正确,为2,而不是6。 我真的不知道上面和下面的代码之间有什么区别。 有没有人可以帮助我,并告诉我上述原因为何。 非常感谢。
答案 0 :(得分:1)
无需添加"DFS(A, k, target, i + 1);"
只需删除此行。