37. Sudoku Solver
https://leetcode.com/problems/sudoku-solver/
Borrow the idea of sudoku valid from 36
Backtracking
class Solution:
def solveSudoku(self, board: List[List[str]]) -> None:
"""
Do not return anything, modify board in-place instead.
"""
def isValidSudoku(board,row,col,c):
for j in range(9):
if board[row][j] != ".":
if board[row][j] == c:
return False
if board[j][col] != ".":
if board[j][col] == c:
return False
currCube = board[row//3 * 3 + j//3][col//3 * 3 + j % 3]
if currCube != ".":
if currCube == c:
return False
return True
def solve(board):
for i in range(9):
for j in range(9):
if board[i][j] == ".":
for c in range(1,10):
if isValidSudoku(board,i,j,str(c)):
board[i][j] = str(c)
if solve(board):
return True
else:
board[i][j] = "."
return False
return True
solve(board)
return
Last updated
Was this helpful?