二維陣列 有效的數獨 go語言
阿新 • • 發佈:2018-11-13
判斷一個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。 數字 1-9 在每一行只能出現一次。 數字 1-9 在每一列只能出現一次。 數字 1-9 在每一個以粗實線分隔的 3x3 宮內只能出現一次。 上圖是一個部分填充的有效的數獨。 數獨部分空格內已填入了數字,空白格用 '.' 表示。 示例 1: 輸入: [ ["5","3",".",".","7",".",".",".","."], ["6",".",".","1","9","5",".",".","."], [".","9","8",".",".",".",".","6","."], ["8",".",".",".","6",".",".",".","3"], ["4",".",".","8",".","3",".",".","1"], ["7",".",".",".","2",".",".",".","6"], [".","6",".",".",".",".","2","8","."], [".",".",".","4","1","9",".",".","5"], [".",".",".",".","8",".",".","7","9"] ] 輸出: true
func isValidSudoku(board [][]byte) bool { var row [9][10]bool var cow [9][10]bool var block [9][10]bool for i := 0; i < 9; i++ { for j := 0; j < 9; j++ { var index = i/3*3 + j/3 if board[i][j] != '.' { var tmp = board[i][j] - '0' if row[i][tmp] { return false } else { row[i][tmp] = true } if cow[j][tmp] { return false } else { cow[j][tmp] = true } if block[index][tmp] { return false } else { block[index][tmp] = true } } } } return true }