1 //occupyed_1檢查行是否佔用 2 //occupyed_2檢查列是否佔用 3 //occupyed_3檢查塊是否佔用 4 bool isValidSudoku(vector<vector<char>>& 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 }