求一组数据的全排列
程序员文章站
2022-03-22 19:07:27
...
给定一个没有重复数字的序列,返回其所有可能的全排列。
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;
}
}
上一篇: 有重复元素的排列问题//利用全排列函数
下一篇: hdu1754线段树