LEETCODE 36. Valid Sudoku
程序员文章站
2022-07-15 12:31:33
...
题目大意
给出一个9*9的二维表格:
判断这个表格是不是有效的数独表格。
解题思路
一种解法:
用一个9维数组,存放每个数字是不是出现过,按列、行、小格遍历
另一种解法:
分别用三个数组,第一个数组放着某个数字在某一列是否出现过;第二个数组放着某个数字在某一行是否出现过;第三个数组放着某个数字在某一小格是否出现过。
第二种解法需要遍历表格一次而已,而第一种解法则需要遍历表格两次。实现第二种解法。
代码
class Solution {
public:
bool isValidSudoku(vector<vector<char>>& board) {
bool checkCol[9][9] = {false}, checkRow[9][9] = {false}, checkBlock[9][9] = {false;
for (int i = 0; i < board.size(); i++) {
for (int j = 0; j < board[i].size(); j++) {
if (board[i][j] != '.') {
if (checkCol[i][board[i][j] - '1'] || checkRow[j][board[i][j] - '1'] || checkBlock[i / 3 * 3 + j / 3][board[i][j] - '1']) {
return false;
}
checkCol[i][board[i][j] - '1'] = true;
checkRow[j][board[i][j] - '1'] = true;
checkBlock[i / 3 * 3 + j / 3][board[i][j] - '1'] = true;
}
}
}
return true;
}
};
上一篇: LeetCode - 36. Valid Sudoku
下一篇: “管理”软件适合小团队吗?
推荐阅读
-
LeetCode - 20. Valid Parentheses(0ms)
-
LeetCode-32.Longest Valid Parentheses最长有效括号子串
-
Longest Valid Parentheses leetcode java (求最长有效匹配括号子串的长度)-动态规划
-
36. Valid Sudoku
-
【leetcode】36. Valid Sudoku
-
LeetCode - 36. Valid Sudoku
-
LEETCODE 36. Valid Sudoku
-
[LeetCode]36. Valid Sudoku
-
leetcode题集: 36. Valid Sudoku
-
36. Valid Sudoku