LeetCode——46. 全排列

1.问题描述

LeetCode——46. 全排列_第1张图片

2.解决办法

回溯法:
每一位列出所有可能
LeetCode——46. 全排列_第2张图片

第一次swap的作用是构造出新的排列
第二次swap的作用相当于回溯的过程

3.代码实现

class Solution {
    public List> permute(int[] nums) {
     List> arr   =new ArrayList>();
              List out   =new ArrayList();
              for(int i:nums){
                  out.add(i);
              }
              int n= nums.length;
            huius(arr,out,n,0);
            return arr;
    }
     public  void huius(List> arr,List out,int n,int first ){
         if(first==n){
             arr.add(new ArrayList(out));
         }
        for(int i=first;i

你可能感兴趣的:(算法,leetcode,算法,排序算法)