全排列(不含重复元素)

套用模板,很好解决!!!!

class Solution {
    public List<List<Integer>> permute(int[] nums) {
        List<List<Integer>> res= new ArrayList<>();
        dfs(nums,0,res);
        return res;
    }

    void dfs(int[]nums,int cur,List<List<Integer>> res){
        if(cur==nums.length){     // 所有的操作都在这里进行解决!!!!!
            ArrayList<Integer> ls=new ArrayList<Integer>();
            for(int j=0;j<nums.length;j++){
                ls.add(nums[j]);
            }
            res.add(ls);
        }
        
        for(int i=cur;i<nums.length;i++){
            swap(nums,i,cur);
            dfs(nums,cur+1,res); 
            swap(nums,i,cur);
        }
    }
    void swap(int[]nums,int a,int b){
        int temp=nums[a];
        nums[a]=nums[b];
        nums[b]=temp;
    }
}

 

posted @ 2020-08-01 19:22  你眼里的星辰  阅读(169)  评论(0)    收藏  举报