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.
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()
}
}
}