4 × 4 board · place 1 queen per row
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Backtracking · one queen per row
▸1solve(N):2 return place(row = 0)3place(row):4 if row == N: return true // all queens placed5 for col in 0..N-1:6 if attacked(row, col):7 continue // reject, try next column8 board[row][col] = Q // choose9 if place(row + 1): return true10 board[row][col] = . // un-choose (backtrack)11 return false // no safe column in this row12attacked(row, col):13 any earlier queen in same column or diagonal
state
- N4
- ruleno shared column / diagonal