1function solve(row) {
2 if (row === n) { solutions.push([...cols]); return; }
3 for (let col = 0; col < n; col++) {
4 if (isSafe(row, col)) {
5 cols[row] = col; // 放置皇后
6 solve(row + 1); // 递归下一行
7 cols[row] = -1; // 回溯撤销
8 }
9 }
10}
11function isSafe(r, c) {
12 for (let i = 0; i < r; i++) {
13 if (cols[i] === c) return false;
14 if (Math.abs(cols[i] - c) === r - i) return false;
15 }
16 return true;
17}