package Sword69;
import java.util.ArrayList;
import java.util.List;
// 全排列 N皇后 采用回溯法
// 回溯法框架:
// 1. 做选择,即加入到选择list
// 2. 递归(选择list, 可选list)
// 3. 取消选择,即从选择list移除
public class Code025
{
public static void main(String[] args)
{
int[] arr = {1,2,3};
List<Integer> list = new ArrayList<>();
solution001(list,arr);
// System.out.println(result.toString());
}
static List<List<Integer>> result = new ArrayList<>();
private static void solution001(List<Integer> list , int [] arr) {
// .确定返回终止条件
if(list.size() == arr.length){
System.out.println(list);
return;
}
for(int i=0; i< arr.length;i++) {
// 0. 排除重复选择
if(list.contains(arr[i])) {
continue;
}
// 1. 做选择
list.add(arr[i]);
// 2. 递归
solution001(list, arr);
// 3. 取消选择
list.remove(list.size()-1);
}
}
}