Place one queen per row; track attacked columns and diagonals.
Backtrack row by row. For each row, try all columns that are not in:
colsdiag1 (r-c)diag2 (r+c)
Place queen, recurse to next row, then undo.Queens attack only columns and diagonals. Sets let us test legality in O(1).
Place one queen per row; track attacked columns and diagonals.
Backtrack row by row. For each row, try all columns that are not in:
colsdiag1 (r-c)diag2 (r+c)
Place queen, recurse to next row, then undo.Queens attack only columns and diagonals. Sets let us test legality in O(1).