function solveNQueens(n) {
const board = Array.from({ length: n }, () => Array(n).fill(0));
const result = [];
function isSafe(row, col) {
for (let i = 0; i < row; i++) {
if (board[i][col] === 1) {
return false;
}
}
for (let i = row, j = col; i >= 0 && j >= 0; i--, j--) {
if (board[i][j] === 1) {
return false;
}
}
for (let i = row, j = col; i >= 0 && j < n; i--, j++) {
if (board[i][j] === 1) {
return false;
}
}
return true;
}
function backtrack(row) {
if (row === n) {
result.push(board.map(row => row.slice()));
return;
}
for (let col = 0; col < n; col++) {
if (isSafe(row, col)) {
board[row][col] = 1;
backtrack(row + 1);
board[row][col] = 0;
}
}
}
backtrack(0);
return result;
}
const solutions = solveNQueens(4);
console.log(solutions);