qiaoxu123
2/22/2019 - 12:39 AM

36. Valid Sudoku

//Runtime: 16 ms, faster than 98.23%
//Memory Usage: 12.3 MB, less than 77.06%

class Solution {
public:
    bool isValidSudoku(vector<vector<char>>& board) {
        int used1[9][9] = {0},used2[9][9] = {0},used3[9][9] = {0};
        
        for(int i = 0;i < board.size();++i)
            for(int j = 0;j < board[i].size();++j)
                if(board[i][j] != '.')
                {
                    int num = board[i][j] - '0' - 1;
                    int k = i / 3 * 3 + j / 3;
                    if(used1[i][num] || used2[j][num] || used3[k][num])
                        return false;
                    used1[i][num] = used2[j][num] = used3[k][num] = 1;
                }
        return true;
    }
};