欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

求一组数据的全排列

程序员文章站 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;
    }
}
相关标签: 全排列