List类的添加方法

我编写了以下代码来生成给定整数的排列

import java.util.ArrayList;
import java.util.List;

class Solution {
    public List<List<Integer>> permute(int[] nums) {
        List<List<Integer>> result = new ArrayList<>();
        if (nums == null || nums.length == 0){
            return result;
        }
        boolean[] visited = new boolean[nums.length];
        List current = new ArrayList<Integer>();
        permute_recursive(visited,nums,current,result);
        return result;


    }
    public void permute_recursive(boolean[] visited,int[] nums,List<Integer> current,List<List<Integer>> result){
        if(current.size() == nums.length){
            result.add(new ArrayList<Integer>(current));
            return;
        }
        for(int i = 0; i < nums.length; i++){
            if(visited[i]){
                continue;
            }
            visited[i] = true;
            current.add(nums[i]);
            permute_recursive(visited,result);
            visited[i] = false;
            //do not want the next round to start with nums[i],but we just added it,so we need to 
remove it.
            current.remove(current.size() - 1);


        }
    }
}

问题是当我直接执行result.add(current)时,它只会向我返回一个空数组列表,我不知道为什么。

根据要求,我的主要方法是

public class test {
    public static void main(String[] args) {
        int[] test = new int[]{1,2,3};
    System.out.print(Solution.permute(test));
    }
}

这有什么关系?

myyxd318 回答:List类的添加方法

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3106699.html

大家都在问