有效的数独
题目
请你判断一个 9x9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。
数字 1-9 在每一行只能出现一次。
数字 1-9 在每一列只能出现一次。
数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)
数独部分空格内已填入了数字,空白格用 ‘.’ 表示。
题解
class Solution {
public:
bool isValidSudoku(vector<vector<char>>& board) {
int len = board.size();
int row[9][9] = { 0 };
int col[9][9] = { 0 };
int three[9][9] = { 0 };
for (int i = 0; i < len; ++i)
{
for (int j = 0; j < len; ++j)
{
if (board[i][j] == '.')
{
continue;
}
int n = board[i][j] - '0' - 1;
int k = i / 3 * 3 + j / 3;
if (row[i][n] || col[j][n] || three[k][n])
{
return false;
}
row[i][n] = col[j][n] = three[k][n] = 1;
}
}
return true;
}
};