1.题目
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.
2.思路
class Solution {
public:
bool check(vector<int> &a , char c)
{
if(c == '.') return true;
if(a[c-'0'] == 0){
a[c-'0']++;
return true;
}
else return false;
}
bool isValidSudoku(vector<vector<char>>& board) {
vector<int> row_valid(10);
vector<int> col_valid(10);
vector<vector<int> > sub_valid(10,vector<int>(10));
for(int i = 0;i<9;i++){
row_valid.assign(10, 0);
col_valid.assign(10, 0);
for(int j = 0;j<9;j++){
if(!check(row_valid,board[i][j])) return false;
if(!check(col_valid,board[j][i])) return false;
if(!check(sub_valid[(i/3)*3+j/3],board[i][j])) return false;
}
}
return true;
}
};
本文介绍了一种使用C++实现的验证数独是否有效的方法。通过检查行、列及每个宫格内的数字是否重复来判断数独的有效性。文章提供了一个具体的实现方案,并详细解释了如何进行有效的检查。
690

被折叠的 条评论
为什么被折叠?



