思路题目里已经给出来了,判断是否是一个有效数独,只需满足以下三个条件:
1、同行元素不重复且1-9都有;
2、同列元素不重复且1-9都有;
3、每个粗线分隔的3*3的小九宫格元素不重复且1-9都有。
参考了大神的解法:
class Solution { public: bool isValidSudoku(vector<vector<char>>& board) { int row[9][9] = {0}, col[9][9] = {0}, sub[9][9] = {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' - 1; if(row[i][num] == 1 || col[j][num] == 1 || sub[i / 3 * 3 + j / 3][num] == 1) return false; row[i][num] = 1; col[j][num] = 1; sub[i / 3 * 3 + j / 3][num] = 1; } } return true; } };