How to solve target sum question with ArrayList return type in Java [关闭]

问题描述 投票:0回答:0

写一个递归函数,返回求和的数组的子集 到目标。函数的返回类型应该是 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。

java recursion arraylist
© www.soinside.com 2019 - 2024. All rights reserved.