给定一个没有重复数字的序列,返回其所有可能的全排列。
示例:
输入: [1,2,3]
输出:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]
题解:复习java基础就ok
class Solution {
public int[] flag;
public int length;
public List<Integer> num;
public List<List<Integer>> list=new ArrayList();
public List<List<Integer>> permute(int[] nums) {
length=nums.length;
flag=new int[length];
for(int i=0;i<length;i++) {
num=new ArrayList();
num.add((Integer) nums[i]);
flag[i]=1;
fun(i,nums);
flag[i]=0;
num.remove((Integer) nums[i]);
}
System.out.println(list);
return list;
}
public void fun(int k,int[] nums){
int fflag=0;
for(int i=0;i<length;i++){
if(flag[i]==0){
fflag = 1;
num.add((Integer) nums[i]);
flag[i]=1;
fun(i,nums);
flag[i]=0;
num.remove((Integer) nums[i]);
}
}
if(fflag==0){
List<Integer> temp=new ArrayList<>();
temp.addAll(num);
list.add(temp);
return;
}
}
}