//は、配列の完全な配列を書き解決するために再帰を使用するのではと思いますが、書き込めません。
// LEETCODE上の問題への公式ソリューションは、再帰的に補助機能を使用する必要があり、バックトラッキングされます。
//書き込みコードを直接
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);
}
}