Golang:
思路:这题很有趣的是,我看到的解法里,暴力法几乎是最优解,而其他的解法貌似最优,实则未必。
代码如下:
func isValidSudoku(board [][]byte) bool {
matrix:=make([][]int,27)
for i,_:=range matrix{
matrix[i]=make([]int,9)
}
for i:=0;i<len(board);i++{
for j:=0;j<len(board);j++{
if board[i][j]!='.'{
temp:=board[i][j]-'1'
if matrix[i][temp]==1||matrix[9+j][temp]==1||matrix[18+i/3*3+j/3][temp]==1{
return false
}else{
matrix[i][temp],matrix[9+j][temp],matrix[18+i/3*3+j/3][temp]=1,1,1
}
}
}
}
return true
}
有疑问加站长微信联系(非本文作者)