// Escribir una amplia gama de matrices, pensar en usar recursividad para resolver, pero no escribir.
La solución oficial a un problema en la // LEETCODE está dando marcha atrás de forma recursiva, tiene que utilizar la función auxiliar.
// código de escritura directa
public List<List<Integer>> permute(int[] nums){
List<List<Integer>> output = new LinkedList<Integer>();
ArrayList<Integer> num_list = new Arraylist<Integer>();
for(int num:nums){
num_list.add(num);
}
backtrack(int n,ArrayList<Integer> num_list,List<List<Integer>> output,int first);
}
public void backtrack(int n,ArrayList<Integer> num_list,List<List<Integer>> output,int first){
//递归的终止条件是什么呢?
if(first == n){
output.add(new ArrayList(nums_list));
}
for(int i = first;i < n;i++){
Collections.swap(nums_first,first,i);
backtrack(n,nums,output,first + 1);
Collections.swap(nums,first,i);
}
}