46. Permutations

Medium

准备联系这个系列A general approach to backtracking questions in Java (Subsets, Permutations, Combination Sum, Palindrome Partioning)
简单,straightforward,没什么好说的

public class Solution {
    public List> permute(int[] nums) {
        List> res = new ArrayList<>();
        if (nums == null || nums.length == 0){
            return res;
        }
        List list = new ArrayList<>();
        dfsHelper(res, list, nums);
        return res;
    }
    
    private void dfsHelper(List> res, List list, int[] nums){
        if (list.size() == nums.length){
            res.add(new ArrayList(list));
            return;
        }
        for (int i = 0; i < nums.length; i++){
            if (list.contains(nums[i])){
                continue;
            }
            list.add(nums[i]);
            dfsHelper(res, list, nums);
            list.remove(list.size() - 1);
        }
    }
}

你可能感兴趣的:(46. Permutations)