程式語言 - LeetCode - C++ - 36. Valid Sudoku



題目:


解答:

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

        for (int i = 0; i < 9; ++i) {
            for (int j = 0; j < 9; ++j) {
                int n = board[i][j] - '1';
                int b = ((i / 3) * 3) + (j / 3);

                if (board[i][j] == '.') {
                    continue;
                }

                if (row[i][n] || col[j][n] || box[b][n]) {
                    return false;
                }

                row[i][n] = 1;
                col[j][n] = 1;
                box[b][n] = 1;
            }
        }

        return true;
    }
};