必须返回真值,拿到唯一解,否则会被撤销选择,
class Solution:
def solveSudoku(self, board: List[List[str]]) -> None:
"""
Do not return anything, modify board in-place instead.
"""
def isvaild(i,j,num):
for x in range(0,9):
if board[i][x]==str(num):return False
if board[x][j]==str(num):return False
if board[(i//3)*3+x//3][(j//3)*3+x%3]==str(num): return False
return True
def backtrack(i,j):
if i==9:return #True
if j==9:
return backtrack(i+1,0)
if board[i][j]!='.': backtrack(i,j+1)
if board[i][j]=='.':
for num in range(1,10):
if isvaild(i,j,num):
board[i][j]=str(num)
backtrack(i,j+1)#:return True
print(num)
board[i][j]='.'
#return False
backtrack(0,0)