1 //occupyed_1检查行是否占用 2 //occupyed_2检查列是否占用 3 //occupyed_3检查块是否占用 4 bool isValidSudoku(vector>& board) 5 { 6 int occupyed_1[9][9], occupyed_2[9][9], occupyed_3[9][9]; 7 for (int i = 0; i < 9; ++i) { 8 for (int j = 0; j < 9; ++j) { 9 occupyed_1[i][j] = 0;10 occupyed_2[i][j] = 0;11 occupyed_3[i][j] = 0;12 }13 }14 15 int rowSize = board.size();16 int colSize = board[0].size();17 for (int i = 0; i < rowSize; ++i) {18 for (int j = 0; j < colSize; ++j) {19 if (board[i][j] != '.') {20 int num = board[i][j] - '0' - 1;21 int k = i / 3 * 3 + j / 3;22 23 if (occupyed_1[i][num] || occupyed_2[j][num]24 || occupyed_3[k][num])25 return false;26 occupyed_1[i][num] = 1;27 occupyed_2[j][num] = 1;28 occupyed_3[k][num] = 1;29 }30 }31 }32 return true;33 }