36. Valid Sudoku
生活随笔
收集整理的這篇文章主要介紹了
36. Valid Sudoku
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
description:
判斷數(shù)獨(dú)是否正確
Determine if a 9x9 Sudoku board is valid. Only the filled cells need to be validated according to the following rules:
Note:
A Sudoku board (partially filled) could be valid but is not necessarily solvable. Only the filled cells need to be validated according to the mentioned rules. The given board contain only digits 1-9 and the character '.'. The given board size is always 9x9.Example:
Example 1:Input: [["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"] ] Output: trueExample 2:Input: [["8","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"] ] Output: false Explanation: Same as Example 1, except with the 5 in the top left corner being modified to 8. Since there are two 8's in the top left 3x3 sub-box, it is invalid.answer:
class Solution { public:bool isValidSudoku(vector<vector<char>>& board) {if (board.empty() || board[0].empty()) return false;vector<vector<bool>> rowFlag(9, vector<bool>(9, false));vector<vector<bool>> colFlag(9, vector<bool>(9, false));vector<vector<bool>> cellFlag(9, vector<bool>(9, false));for (int i = 0; i < 9; i++){for (int j = 0; j < 9; j++) {if (board[i][j] >= '1' && board[i][j] <= '9'){int c = board[i][j] - '1';if (rowFlag[i][c] || colFlag[c][j] || cellFlag[3 * (i / 3) + j / 3][c]) return false;rowFlag[i][c] = true;colFlag[c][j] = true;cellFlag[3 * (i / 3) + j / 3][c] = true; // 這里對(duì)小方塊的坐標(biāo)轉(zhuǎn)換很關(guān)鍵,首先 (i/3) 是確定這個(gè)數(shù)所在的小方塊所在第幾行(0/1/2)// 然后再乘以3是算出這個(gè)數(shù)之前幾行有幾個(gè)方塊,在加上此列前面幾個(gè),就是算出來(lái)了這個(gè)數(shù)到底在第幾個(gè)方塊。} }}return true;} };relative point get√:
hint :
其實(shí)是對(duì)這個(gè)答案有疑問的:
- 沒有判斷如果是個(gè)不合法的數(shù)獨(dú)形式怎么辦
- 沒有判斷數(shù)字不是1-9內(nèi)的怎么辦
轉(zhuǎn)載于:https://www.cnblogs.com/forPrometheus-jun/p/11116372.html
總結(jié)
以上是生活随笔為你收集整理的36. Valid Sudoku的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在linux学习中遇到的问题
- 下一篇: Git 推送到远程仓库