在一个N*N的棋盘上放置N个皇后,每行一个并使其不能互相攻击(同一行、同一列、同一斜线上的皇后都会自动攻击),问一共有多少种放法?
代码import java.util.ArrayList;
import java.util.List;
// n 皇后问题
public class queen {
public static List> ResList=new ArrayList<>(); //结果列表
public static int num=8; //皇后个数
public static void main(String[] args) {
List list=new ArrayList<>(); //已选好的路径
backtrack(0,list); //从第一行开始放起
for(List l:ResList)
System.out.println(l);
System.out.println("一共有"+ResList.size()+"种答案");
}
private static void backtrack(int n, List list) { // n表示当前行数
if(list.size()==num){
ResList.add(new ArrayList<>(list));
return ;
}
for(int i=0;i list) { // i表示当前第n行的列坐标
for(int j=0;j
运行结果



