全排列
给定一个不含重复数字的数组 nums
,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。
示例 1:
示例 2:
1 2
| 输入:nums = [0,1] 输出:[[0,1],[1,0]]
|
示例 3:
解法
使用回溯法中的模板
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| class Solution { private List<List<Integer>> res = new LinkedList<>(); private LinkedList<Integer> list = new LinkedList<>();
public List<List<Integer>> permute(int[] nums) { boolean used[] = new boolean[nums.length]; array(nums,used); return res; } public void array(int nums[],boolean used[]){ if (list.size()==nums.length) { res.add(new LinkedList<>(list)); return; } for (int i = 0;i<nums.length;i++){ if (used[i]) continue; used[i] = true; list.add(nums[i]); array(nums,used); used[i] = false; list.removeLast(); } } }
|