题目:
思路:
每行,每列,每个九宫格中,1~9每个数字最多出现一次。
建立一次二层循环,遍历,标记,判断。
One Possible Answer:
bool isValidSudoku(char** board, int boardSize, int* boardColSize) {
int x[9][9] = { 0 }, y[9][9] = { 0 }, s[3][3][9] = { 0 };
int i, j, num, sx, sy;
for (i = 0; i < 9; i++) {
for (j = 0; j < 9; j++) {
if (board[i][j] == '.') {
continue;
}
sx = i / 3, sy = j / 3;
num = board[i][j] - '1';
if (x[i][num] == 1 || y[j][num] == 1 || s[sx][sy][num] == 1) {
return false;
}
x[i][num] = 1;
y[j][num] = 1;
s[sx][sy][num] = 1;
}
}
return true;
}