leetcode36. Valid Sudoku
class Solution {
public:
bool isValidSudoku(vector<vector<char>>& board) {
bool result = true;
int filled[3][board.size()][board.size()];
for(int i=0;i<board.size();i++){
for(int j = 0;j<board[i].size();j++){
filled[0][i][j] = -1;
filled[1][i][j] = -1;
filled[2][i][j] = -1;
}
}
for(int i=0;i<board.size();i++){
for(int j = 0;j<board[i].size();j++){
if(board[i][j]!='.'){
if(filled[0][i][board[i][j] - '0' -1] == -1)
filled[0][i][board[i][j] - '0' - 1] = i;
else{
//cout<<"x"<<filled[2][(i/3 * 3 +j/3)][board[i][j] - '0' -1]<<endl;
return false;
}
if(filled[1][j][board[i][j] - '0' -1] == -1)
filled[1][j][board[i][j] - '0' -1] = j;
else{
//cout<<"y"<<filled[2][(i/3 * 3 +j/3)][board[i][j] - '0' -1]<<endl;
return false;
}
if(filled[2][(i/3 * 3 +j/3)][board[i][j] - '0' -1] == -1)
filled[2][(i/3 * 3 +j/3)][board[i][j] - '0' -1] = ((i%3)*3 +j%3);
else{
// cout<<"square"<<filled[2][(i/3 * 3 +j/3)][board[i][j] - '0' -1]<<endl;
return false;
}
}
}
}
return result;
}
};