AlgoPrecision

Backtracking

Decision Tree Visualizer

Step through choose, explore, reject, and undo moments while the path, board state, result count, time, and space complexity update.

O(n!) time / O(n) space

Board

1,1

-

1,2

-

1,3

-

1,4

-

2,1

-

2,2

-

2,3

-

2,4

-

3,1

-

3,2

-

3,3

-

3,4

-

4,1

-

4,2

-

4,3

-

4,4

-

Current Path

empty

Results

No result yet

Results

0

Time

O(n!)

Space

O(n)

Step Note

Place one queen in each row.

Details
function nQueens(size: number) {
  const queens = []
  function dfs(row: number) {
    if (row === size) return recordSolution()
    for (let col = 0; col < size; col++) {
      if (!isSafe(row, col, queens)) continue
      queens.push([row, col])
      dfs(row + 1)
      queens.pop()
    }
  }
}