36 - Valid Sudoku

 JAVA

  • class Solution {
        public boolean isValidSudoku(char[][] board) {
            boolean[][] row = new boolean[9][9];
            boolean[][] col = new boolean[9][9];
            boolean[][] sub = new boolean[9][9];
            for (int i = 0; i < 9; ++i) {
                for (int j = 0; j < 9; ++j) {
                    char c = board[i][j];
                    if (c == '.') {
                        continue;
                    }
                    int num = c - '0' - 1;
                    int k = i / 3 * 3 + j / 3;
                    if (row[i][num] || col[j][num] || sub[k][num]) {
                        return false;
                    }
                    row[i][num] = true;
                    col[j][num] = true;
                    sub[k][num] = true;
                }
            }
            return true;
        }
    }
C++
  • class Solution {
    public:
        bool isValidSudoku(vector<vector<char>>& board) {
            vector<vector<bool>> row(9, vector<bool>(9, false));
            vector<vector<bool>> col(9, vector<bool>(9, false));
            vector<vector<bool>> sub(9, vector<bool>(9, false));
            for (int i = 0; i < 9; ++i) {
                for (int j = 0; j < 9; ++j) {
                    char c = board[i][j];
                    if (c == '.') continue;
                    int num = c - '0' - 1;
                    int k = i / 3 * 3 + j / 3;
                    if (row[i][num] || col[j][num] || sub[k][num]) {
                        return false;
                    }
                    row[i][num] = true;
                    col[j][num] = true;
                    sub[k][num] = true;
                }
            }
            return true;
        }
    };

Comments