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>> box(9, vector<bool>(9,false));
for(int i = 0; i < 9; ++i)
for(int j = 0; j < 9; ++j)
{
char ch=board[i][j];
if (ch == '.')
continue; // blank, no effect
ch -= '1';
if (row[i][ch]||col[j][ch]||box[i -i% 3 + j / 3][ch])
return false;
row[i][ch] = col[j][ch]=box[i -i% 3 + j / 3][ch]=true;
}
return true;
}
};
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>> box(9, vector<bool>(9,false));
for(int i = 0; i < 9; ++i)
for(int j = 0; j < 9; ++j)
{
char ch=board[i][j];
if (ch == '.')
continue; // blank, no effect
ch -= '1';
if (row[i][ch]||col[j][ch]||box[i -i% 3 + j / 3][ch])
return false;
row[i][ch] = col[j][ch]=box[i -i% 3 + j / 3][ch]=true;
}
return true;
}
};