写一个递归函数,返回求和的数组的子集 到目标。函数的返回类型应该是 ArrayList。 打印返回的值。
Input:
5
1 3 5 7 0
6
Output:
[1 5, 1 5 0 ]
我可以像这样为这段代码编写一个基本结构
public static ArrayList<String> arrS(int[] arr,int idx,int tar){
if(idx == arr.length){
ArrayList<String> base = new ArrayList<>();
if(tar == 0) base.add("");
return base;
}
ArrayList<String> ans = new ArrayList<>();
ArrayList<String> res1 = arrS(arr,idx+1,tar-arr[idx]);
ArrayList<String> res2 = arrS(arr,idx+1,tar);
if(tar-arr[idx] == 0) {
for(String r: res1){
ans.add(arr[idx]+r);
}
for(String r: res2){
ans.add(arr[idx]+r);
}
}
return ans;
}
但结果我得到一个空的 ArrayList。