LeetCode Hot 100 No.46 全排列

LeetCode Hot 100 No.46 全排列_第1张图片

思路:
不用说,回溯法套路直接套

class Solution {
    List<List<Integer>> res = new ArrayList<>();
    public void all(int[] nums, List<Integer> trace) {//找出在当前排列的基础上的所有排列方式
        if(trace.size()==nums.length)
            {
                List<Integer> l = new ArrayList<>();
                l.addAll(trace);
                res.add(l); return;
                }
        for(int i=0;i<nums.length;i++)//对于当前排列,找出下一个可加入排列的元素(不在当前排列中的元素都可以加入)
        {
            if(trace.contains(nums[i]))
            {
                continue;
            }
            else
            {
                trace.add(nums[i]);
                all(nums,trace);
                trace.remove(trace.size()-1);
            }
        }
    }
    public List<List<Integer>> permute(int[] nums) 
    {
        all(nums,new ArrayList<Integer>());
        return res;
    }

}

你可能感兴趣的:(LeetCode,Hot,100,leetcode,数据结构,算法)