Total Accepted: 60134
Total Submissions: 206702
Difficulty: Easy
Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules.
The Sudoku board could be partially filled, where empty cells are filled with the character '.'
.
A partially filled sudoku which is valid.
Note:
A valid Sudoku board (partially filled) is not necessarily solvable. Only the filled cells need to be validated.
Subscribe to see which companies asked this question
Hide Similar Problems
思路:
1.定义3个9*9的bool数组rows[9][9],cols[9][9],boxs[9][9],分别表示9行、9列、9格中1-9数字的出现情况;
2.逐个扫描,当num = board[i][j]这个数在rows[i][num],cols[j][num],boxs[k][num]中任何一个出现过时,
说明重复,返回false;
3.最后返回true。
code:
class Solution {
public:
bool isValidSudoku(vector<vector<char>>& board) {
bool rows[9][9] = {false};
bool cols[9][9] = {false};
bool boxs[9][9] = {false};
for(int i=0;i<board.size();i++)
for(int j=0;j<board[0].size();j++) {
if(board[i][j] != '.') {
int num = board[i][j] - '0' - 1;
int k = i/3 * 3 + j/3;
if(rows[i][num] || cols[j][num] || boxs[k][num])
return false;
rows[i][num] = cols[j][num] = boxs[k][num] = true;
}
}
return true;
}
};