题目描述:
思路:判断每一行,每一列,每个3x3宫格是否重复
class Solution {
public:
bool isValidSudoku(vector<vector<char>>& board) {
//每一行的数组初始化
vector<vector<int>>row(9,vector<int>(9,0));
//每一列的数组初始化
vector<vector<int>>col(9,vector<int>(9,0));
//每个3x3宫格数组初始化
vector<vector<int>>box(9,vector<int>(9,0));
for(int i=0;i<9;i++){
for(int j=0;j<9;j++){
if(board[i][j]=='.')
continue;
//类型转换
int val=board[i][j]-'1';
//3x3宫格的序号
int box_index=(i/3)*3+j/3;
//判断是否有重复出现的数字
if(row[i][val]==0&&col[j][val]==0&&box[box_index][val]==0){
row[i][val]=1;
col[j][val]=1;
box[box_index][val]=1;
}
else{
return false;
}
}
}
return true;
}
};