HardNeetCode150ArrayBacktracking

N-Queens

Return all distinct solutions to N-Queens.

Examples

Input
n = 4
Output
2 solutions.

Two distinct arrangements.

Constraints

  • 1 <= n <= 9

Approaches

Try every position.

Code

Track columns and diagonals.

Code

Use bitmasks.

Code

Complexity Comparison

Backtracking Brute
T: O(n!)S: O(n^2)

Try every position.

Backtracking Optimized
T: O(n!)S: O(n)

Track columns and diagonals.

Backtracking Bitwise
T: O(n!)S: O(n)

Use bitmasks.

Common Mistakes

Not checking diagonals

Wrong row/column marking

Not resetting state on backtrack

Try It Yourself

Copy the optimal solution and run it in our compiler.

Open in Compiler