判断数独就是检查其是否满足三个条件:
1 每一行的元素没有重复,且范围在1~9
2 每一列的元素没有重复,且范围在1~9
2 每一个9宫格元素没有重复,且范围在1~9
class Solution {
public:
bool isValidSudoku(vector<vector<char> > &board) {
unordered_map<char,bool>row_map;
unordered_map<char,bool>column_map;
unordered_map<char,bool>mini_map;
int i,j,m,n;
for(i=0;i<board.size();i++){
row_map.clear();
column_map.clear();
for(j=0;j<board[i].size();j++)
{
if(board[i][j]!='.')
{
if(row_map.find(board[i][j])!=row_map.end())
return false;
else
{
row_map[board[i][j]]=true;
}
}
if(board[j][i]!='.')
{
if(column_map.find(board[j][i])!=column_map.end())
return false;
else
{
column_map[board[j][i]]=true;
}
}
}
}
for(i=0;i<board.size();i=i+3){
for(j=0;j<board[i].size();j=j+3){
mini_map.clear();
for(n=0;n<3;n++)
for(m=0;m<3;m++)
{
if(board[i+m][j+n]!='.')
{
if(mini_map.find(board[i+m][j+n])!=mini_map.end())
return false;
else
{
mini_map[board[i+m][j+n]]=true;
}
}
}
}
}
return true;
}
};