36. Valid Sudoku
之前没有写过这么简洁的方法:
class Solution {
public:
bool isValidSudoku(vector<vector<char>>& board) {
int used1[9][9] = {0}, used2[9][9] = {0}, used3[9][9] = {0};
for (int i = 0; i < 9; ++i)
for (int j = 0; j < 9; ++j) {
if (board[i][j] == '.')
continue;
int num = board[i][j] - '0' - 1;
int k = i / 3 * 3 + j / 3;
if (used1[i][num] || used2[j][num] || used3[k][num])
return false;
used1[i][num] = used2[j][num] = used3[k][num] = 1;
}
return true;
}
};
//用三个额外的二维数组,分别检测横,纵,块。