← Backtracking

Micro-Drill #186 — N-Queens solve template

Backtracking Target: 15s

Place queens row by row, checking column and diagonal conflicts. Classic backtracking with implicit undo.

def solveNQueens(n):
    res = []
    board = [-1] * n
    def backtrack(row):
        if row == n:
            res.append(['.'*c + 'Q' + '.'*(n-c-1) for c in board])
            return
        for col in range(n):
            if all(board[i] != col and abs(board[i]-col) != row-i
                   for i in range(row)):
                board[row] = col
                backtrack(row + 1)
                board[row] = -1
    backtrack(0)
    return res

Type it from memory. Go.

Practice Problems

Related Coding Drills

← Micro #185 Micro #187 →