mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-07 15:45:40 +08:00
增加37.解数独,go版本
This commit is contained in:
@ -376,6 +376,61 @@ class Solution:
|
||||
|
||||
Go:
|
||||
|
||||
```go
|
||||
func solveSudoku(board [][]byte) {
|
||||
var backtracking func(board [][]byte) bool
|
||||
backtracking=func(board [][]byte) bool{
|
||||
for i:=0;i<9;i++{
|
||||
for j:=0;j<9;j++{
|
||||
//判断此位置是否适合填数字
|
||||
if board[i][j]!='.'{
|
||||
continue
|
||||
}
|
||||
//尝试填1-9
|
||||
for k:='1';k<='9';k++{
|
||||
if isvalid(i,j,byte(k),board)==true{//如果满足要求就填
|
||||
board[i][j]=byte(k)
|
||||
if backtracking(board)==true{
|
||||
return true
|
||||
}
|
||||
board[i][j]='.'
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
backtracking(board)
|
||||
}
|
||||
//判断填入数字是否满足要求
|
||||
func isvalid(row,col int,k byte,board [][]byte)bool{
|
||||
for i:=0;i<9;i++{//行
|
||||
if board[row][i]==k{
|
||||
return false
|
||||
}
|
||||
}
|
||||
for i:=0;i<9;i++{//列
|
||||
if board[i][col]==k{
|
||||
return false
|
||||
}
|
||||
}
|
||||
//方格
|
||||
startrow:=(row/3)*3
|
||||
startcol:=(col/3)*3
|
||||
for i:=startrow;i<startrow+3;i++{
|
||||
for j:=startcol;j<startcol+3;j++{
|
||||
if board[i][j]==k{
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
Javascript:
|
||||
```Javascript
|
||||
var solveSudoku = function(board) {
|
||||
|
Reference in New Issue
Block a user