题目
题解
遍历每一个元素
每行创建一个哈希表
每列创建一个哈希表
每3*3的格子创建一个哈希表 int box_index = (i / 3 ) * 3 + j / 3;
代码
class Solution {
public:
bool isValidSudoku(vector<vector<char>>& board) {
unordered_map<int,int> rows[9];
unordered_map<int,int> columns[9];
unordered_map<int,int> boxes[9];
for(int i=0;i<9;i++)
for(int j=0;j<9;j++){
char num = board[i][j];
if (num != '.') {
int n = (int)num;
int box_index = (i / 3 ) * 3 + j / 3;
if(rows[i].find(n)!=rows[i].end()||columns[j].find(n)!=columns[j].end()||boxes[box_index].find(n)!=boxes[box_index].end())
return false;
rows[i][n]=1;
columns[j][n]=1;
boxes[box_index][n]=1;
}
}
return true;
}
};