给定一个不含重复数字的数组
nums
,返回其
所有可能的全排列
。你可以
按任意顺序
返回答案。
class Solution {
public List<List<Integer>> permute(int[] nums) {
List<List<Integer>> list = new ArrayList<>();
LinkedList<Integer> track = new LinkedList<>();
boolean[] used = new boolean[nums.length];
backTrack(list,track,nums,used);
return list;
}
public void backTrack(List<List<Integer>> list,LinkedList<Integer> track,int[] nums,boolean[] used){
if(track.size() == nums.length){
list.add(new LinkedList<>(track));
return;
}
for(int i =0;i < nums.length;i++){
if(used[i]){
continue;
}
track.add(nums[i]);
used[i] = true;
backTrack(list,track,nums,used);
track.removeLast();
used[i] = false;
}
}
}
版权声明:本文为qq_42900213原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。