思路
题意是让我们进行判断所填入的元素是否满足要求,因此只需要双重for循环遍历并且判断是否满足条件即可。而判断条件是判断行、列、小方块内的元素是否唯一,因此开辟三个二维数组做哈希映射。
代码
class Solution {
public:
bool isValidSudoku(vector<vector<char>>& board) {
int row[9][10]={0};
int col[9][10]={0};
int box[9][10]={0};
int curnum;
for(int i=0;i<9;++i){
for(int j=0;j<9;++j){
if(board[i][j]=='.')continue;
curnum=board[i][j]-'0';
if(row[i][curnum])return false;
row[i][curnum]=1;
if(col[j][curnum])return false;
col[j][curnum]=1;
if(box[j/3+(i/3)*3][curnum])return false;
box[j/3+(i/3)*3][curnum]=1;
}
}
return true;
}
};