LeetCode-36. 有效的數(shù)獨(dú)

題目描述 有效的數(shù)獨(dú)

判斷一個 9x9 的數(shù)獨(dú)是否有效。只需要根據(jù)以下規(guī)則,驗證已經(jīng)填入的數(shù)字是否有效即可。

數(shù)字 1-9 在每一行只能出現(xiàn)一次。
數(shù)字 1-9 在每一列只能出現(xiàn)一次。
數(shù)字 1-9 在每一個以粗實(shí)線分隔的 3x3 宮內(nèi)只能出現(xiàn)一次。

上圖是一個部分填充的有效的數(shù)獨(dú)。

數(shù)獨(dú)部分空格內(nèi)已填入了數(shù)字,空白格用 '.' 表示。

示例:

輸入:
[
["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

解題思路

代碼

class Solution {
public:
    bool isValidSudoku(vector<vector<char> > &board) {
        if (board.empty() || board[0].empty()) return false;
        int m = board.size(), n = board[0].size();
        vector<vector<bool> > rowFlag(m, vector<bool>(n, false));
        vector<vector<bool> > colFlag(m, vector<bool>(n, false));
        vector<vector<bool> > cellFlag(m, vector<bool>(n, false));
        for (int i = 0; i < m; ++i) {
             for (int j = 0; j < n; ++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] = tru
                 }
             }
         }         
        return true;
     }
};
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者

推薦閱讀更多精彩內(nèi)容

  • 判斷一個 9x9 的數(shù)獨(dú)是否有效。只需要根據(jù)以下規(guī)則,驗證已經(jīng)填入的數(shù)字是否有效即可。 數(shù)字 1-9 在每一行只能...
    WindMajor閱讀 1,110評論 0 0
  • 判斷一個 9x9 的數(shù)獨(dú)是否有效。只需要根據(jù)以下規(guī)則,驗證已經(jīng)填入的數(shù)字是否有效即可。數(shù)字 1-9 在每一行只能出...
    小黑Swift閱讀 574評論 0 0
  • 【1005每日一問】 大課后的思考:已經(jīng)上完了時間管理第四次大課“定制化”,小伙伴們,接下來你們要落實(shí)到行動上的是...
    Daisy周丹萍閱讀 276評論 0 0
  • 距離產(chǎn)生美,原本是繪畫和攝影的專業(yè)技巧,合理運(yùn)用每個角度的距離差,可以使畫面立體,讓觀者能從平面中感受到空間的美。...
    金戔王英閱讀 375評論 0 0
  • #!/bin/sh VIP="10.0.0.1" DEV="eth0" healthcheck(){ ping -...
    SkTj閱讀 344評論 0 0

友情鏈接更多精彩內(nèi)容