版权声明:未经允许禁止转载 https://blog.csdn.net/weixin_38481963/article/details/87885334
给定一个没有重复数字的序列,返回其所有可能的全排列。
class Solution {
public void swap(int nums[],int i,int j){
int tmp = nums[i];
nums[i] = nums[j];
nums[j] = tmp;
}
public void permutation(List<List<Integer>> ans,int nums[],int left,int len){
if(left==len-1){
ArrayList<Integer> list = new ArrayList<>();
for(int e:nums)
list.add(e);
ans.add(list);
}else{
for(int i=left; i<len; i++)
{
swap(nums,left,i);
permutation(ans,nums,left+1,len);
swap(nums,left,i);
}
}
}
public List<List<Integer>> permute(int[] nums) {
List<List<Integer>> ans = new ArrayList<>();
permutation(ans,nums,0,nums.length);
return ans;
}
}