36. Valid Sudoku

class Solution {
public:
    bool isValidSudoku(vector<vector<char>>& board) {
        vector<int> col(9, 0);
        vector<int> row(9, 0);
        vector<vector<int> > block(3, vector<int>(3, 0));

        for (int i = 0; i < 9; i++)
          for (int j = 0; j < 9; j++)
            if (board[i][j] != '.') {
                int tmp = 1 << (board[i][j] - '0');
                if ((row[i] & tmp) || (col[j] & tmp) || (block[i / 3][j / 3] & tmp))
                    return false;
                row[i] |= tmp;
                col[j] |= tmp;
                block[i / 3][j / 3] |= tmp;
            }

        return true;
    }
};

vector<vector<int> > block(3, vector<int>(3, 0));

新技能get

results matching ""

    No results matching ""