这个题用哈希表做就可以,用哈希表记录每个元素出现的次数,然后用vector定义三个99,99,339的数组。用于判断行,列,小九宫格内元素出现的次数。
class Solution {
public:
bool isValidSudoku(vector<vector<char>>& board) {
vector<vector<int>> row(9,vector<int>(9)) ,col(9,vector<int>(9));
vector<vector<vector<int>>> p(3,vector<vector<int>>(3,vector<int>(9)));
for(int i=0;i<9;i++){
for(int j=0;j<9;j++){
if(board[i][j] != '.'){
row[i][board[i][j]-'1']++;
col[j][board[i][j]-'1']++;
p[i/3][j/3][board[i][j]-'1']++;
if(row[i][board[i][j]-'1']>1 || col[j][board[i][j]-'1']>1 || p[i/3][j/3][board[i][j]-'1']>1){
return false;
}
}
}
}
return true;
}
};