请判定一个数独是否有效。
该数独可能只填充了部分数字,其中缺少的数字用 . 表示。
注意事项
一个合法的数独(仅部分填充)并不一定是可解的。我们仅需使填充的空格有效即可。
您在真实的面试中是否遇到过这个题? Yes
说明
什么是 数独?
http://sudoku.com.au/TheRules.aspx
http://baike.baidu.com/subview/961/10842669.htm
class Solution {
public:
/**
* @param board: the board
* @return: wether the Sudoku is valid
*/
bool isValidSudoku(const vector<vector<char>>& board) {
for(int i = 0;i < 9;i++) {
for(int j = 0;j < 9;j++) {
int cur = board[i][j];
if (cur == '.') {
continue;
}
for(int k=0;k<9;k++) {
int temp = board[i][k];
if(temp == cur && k != j) {
return false;
}
}
for(int k=0;k<9;k++) {
int temp = board[k][j];
if(temp == cur && k != i) {
return false;
}
}
int n = i/3;
int m = j/3;
for(int p = n * 3;p < n * 3 + 3;p++) {
if (p == i ) {
continue;
}
for(int q = m * 3;q < m * 3 + 3;q++) {
if ( q == j) {
continue;
}
if(board[p][q] == cur && p != i && q != j) {
return false;
}
}
}
}
}
return true;
}
};
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。