贪心高性能神经网络与AI芯片应用研修
System.out.println(new SolveNQueens().solveNQueens(8).size());
}
public List<List<String>> solveNQueens(int n) {
return solveNQueens(n, n);
}
// 解决N皇后问题的第x层
// 在解决第x层之前,假设第x-1层已经得到的解决
public List<List<String>> solveNQueens(int n, int x) {
if (x == 1) {
// 正在棋盘的第1行摆放皇后
List<List<String>> solutionOfFirstRow = new ArrayList<>();
for (int i = 1; i <= n; i++) {
solutionOfFirstRow.add(Collections.singletonList(queenAt(i, n)));
}