classSolution{publicvoidbacktrack(int n,
ArrayList<Integer> nums,
List<List<Integer>> output,int first){// if all integers are used upif(first == n)
output.add(newArrayList<Integer>(nums));for(int i = first; i < n; i++){// place i-th integer first // in the current permutation
Collections.swap(nums, first, i);// use next integers to complete the permutationsbacktrack(n, nums, output, first +1);// backtrack
Collections.swap(nums, first, i);}}public List<List<Integer>>permute(int[] nums){// init output list
List<List<Integer>> output =newLinkedList();// convert nums into list since the output is a list of lists
ArrayList<Integer> nums_lst =newArrayList<Integer>();for(int num : nums)
nums_lst.add(num);int n = nums.length;backtrack(n, nums_lst, output,0);return output;}}
作者:LeetCode
链接:https://leetcode-cn.com/problems/permutations/solution/quan-pai-lie-by-leetcode/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。