/**
* Index: 36
* Title: Valid Sudoku
* Author: ltree98
**/
检查数独是否合法。
数独合法的条件:
1、所处行内没有重复数字
2、所处列内没有重复数字
3、所处方形格内没有重复数字
检查行、列直接查找就可以了,检查方格就要换算一下了。
row/3 * 3 + col/3
接下来暴力查一下就行了。
class Solution {
public:
bool isValidSudoku(vector<vector<char>>& board) {
int checkRow[10][10] = {0}, checkCol[10][10] = {0}, checkSquare[10][10] = {0};
for(int i = 0; i < board.size(); i++) {
for(int j = 0; j < board[i].size(); j++) {
if(board[i][j] != '.') {
int num = board[i][j] - '0';
int s = i/3*3 + j/3;
if(checkRow[i][num] || checkCol[j][num] || checkSquare[s][num])
return false;
checkRow[i][num] = checkCol[j][num] = checkSquare[s][num] = 1;
}
}
}
return true;
}
};