@@ -287,7 +287,39 @@ class Solution {
287
287
```
288
288
289
289
Python:
290
-
290
+ ``` python3
291
+ class Solution :
292
+ def solveSudoku (self , board : List[List[str ]]) -> None :
293
+ """
294
+ Do not return anything, modify board in-place instead.
295
+ """
296
+ def backtrack (board ):
297
+ for i in range (len (board)): # 遍历行
298
+ for j in range (len (board[0 ])): # 遍历列
299
+ if board[i][j] != " ." : continue
300
+ for k in range (1 ,10 ): # (i, j) 这个位置放k是否合适
301
+ if isValid(i,j,k,board):
302
+ board[i][j] = str (k) # 放置k
303
+ if backtrack(board): return True # 如果找到合适一组立刻返回
304
+ board[i][j] = " ." # 回溯,撤销k
305
+ return False # 9个数都试完了,都不行,那么就返回false
306
+ return True # 遍历完没有返回false,说明找到了合适棋盘位置了
307
+ def isValid (row ,col ,val ,board ):
308
+ for i in range (9 ): # 判断行里是否重复
309
+ if board[row][i] == str (val):
310
+ return False
311
+ for j in range (9 ): # 判断列里是否重复
312
+ if board[j][col] == str (val):
313
+ return False
314
+ startRow = (row // 3 ) * 3
315
+ startcol = (col // 3 ) * 3
316
+ for i in range (startRow,startRow + 3 ): # 判断9方格里是否重复
317
+ for j in range (startcol,startcol + 3 ):
318
+ if board[i][j] == str (val):
319
+ return False
320
+ return True
321
+ backtrack(board)
322
+ ```
291
323
292
324
Go:
293
325
0 commit comments