<>1.问题描述
<>2.解决办法
回溯法:
每一位列出所有可能
第一次swap的作用是构造出新的排列
第二次swap的作用相当于回溯的过程
<>3.代码实现
class Solution { public List<List<Integer>> permute(int[] nums) {
List<List<Integer>> arr =new ArrayList<List<Integer>>(); List<Integer> out =new
ArrayList<Integer>(); for(int i:nums){ out.add(i); } int n= nums.length;
huius(arr,out,n,0); return arr; } public void huius(List<List<Integer>>
arr,List<Integer> out,int n,int first ){ if(first==n){ arr.add(new
ArrayList<Integer>(out)); } for(int i=first;i<n;i++){
Collections.swap(out,first,i); huius(arr,out,n,first+1);
Collections.swap(out,first,i); } } }