leetcode:全排列

https://leetcode-cn.com/problems/permutations/

class Solution {
    public List<List<Integer>> permute(int[] nums) {
        List<List<Integer>> res = new ArrayList<>();
        List<Integer> list = new ArrayList<>();
        boolean[] adj = new boolean[nums.length];
        permute(nums, res, list,adj);
        return res;
    }
    private void permute(int[] nums,List<List<Integer>> res,List<Integer> list,boolean[] adj) {
        if(list.size() == nums.length) {
            res.add(new ArrayList(list));
            return;
        }
        for(int i = 0;i < nums.length;i++) {
            if(!adj[i]) {
                list.add(nums[i]);
                adj[i] = true;
                permute(nums,res,list,adj);
                adj[i] = false;
                list.remove(list.size() - 1);
            }
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章