此题参考 http://www.cnblogs.com/TenosDoIt/p/3800485.html
利用了hash的思想
代码
class Solution {
public:
bool isValidSudoku(vector<vector<char> > &board) {
int rowValid[10] = {0};
int colValid[9][10] = {0};
int subBoardValid[9][10] = {0};
for(int i = 0; i < 9; ++i)
{
memset(rowValid, 0, sizeof(rowValid));
for(int j = 0; j < 9; ++j)
{
if(board[i][j]!='.')
{
if(!checkValid(rowValid, board[i][j]-'0') ||
!checkValid(colValid[j], board[i][j]-'0') ||
!checkValid(subBoardValid[i/3*3 + j/3], board[i][j]-'0'))
return false;
}
}
}
return true;
}
bool checkValid(int a[], int val)
{
if(a[val] == 1)
return false;
a[val] = 1;
return true;
}
};