Sudoku Solver

Solution
class Solution:
    def solveSudoku(self, board: List[List[str]]) -> None:
        self.solve(board)
        
    def solve(self, board) -> bool:
        for r in range(9):
            for c in range(9):
                if board[r][c] == '.':
                    for num in map(str, range(1, 10)):
                        if self.isValid(board, r, c, num):
                            board[r][c] = num
                            if self.solve(board):
                                return True
                            board[r][c] = '.'
                    return False
        return True

Time Complexity

O(9^(N^2)

Space Complexity

O(N^2)