网站建设微信官网开发,工业设计专业世界排名,公司官网源码,公众号wordpress同步目录 1.题目2.答案3.提交结果截图 链接#xff1a; 36. 有效的数独 1.题目
请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 #xff0c;验证已经填入的数字是否有效即可。
数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗… 目录 1.题目2.答案3.提交结果截图 链接 36. 有效的数独 1.题目
请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 验证已经填入的数字是否有效即可。
数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。请参考示例图
注意
一个有效的数独部分已被填充不一定是可解的。只需要根据以上规则验证已经填入的数字是否有效即可。空白格用 . 表示。
示例 1 输入board
[[5,3,.,.,7,.,.,.,.]
,[6,.,.,1,9,5,.,.,.]
,[.,9,8,.,.,.,.,6,.]
,[8,.,.,.,6,.,.,.,3]
,[4,.,.,8,.,3,.,.,1]
,[7,.,.,.,2,.,.,.,6]
,[.,6,.,.,.,.,2,8,.]
,[.,.,.,4,1,9,.,.,5]
,[.,.,.,.,8,.,.,7,9]]
输出true示例 2
输入board
[[8,3,.,.,7,.,.,.,.]
,[6,.,.,1,9,5,.,.,.]
,[.,9,8,.,.,.,.,6,.]
,[8,.,.,.,6,.,.,.,3]
,[4,.,.,8,.,3,.,.,1]
,[7,.,.,.,2,.,.,.,6]
,[.,6,.,.,.,.,2,8,.]
,[.,.,.,4,1,9,.,.,5]
,[.,.,.,.,8,.,.,7,9]]
输出false
解释除了第一行的第一个数字从 5 改为 8 以外空格内其他数字均与 示例1 相同。 但由于位于左上角的 3x3 宫内有两个 8 存在, 因此这个数独是无效的。提示
board.length 9board[i].length 9board[i][j] 是一位数字1-9或者 . 2.答案
class Solution {public boolean isValidSudoku(char[][] board) {int[][] block new int[3][9];int[] line new int[9];int[] column new int[9];for (int i 0; i 9; i) {Arrays.fill(line, 0);Arrays.fill(column, 0);if (i % 3 0) {for (int j 0; j 3; j) {Arrays.fill(block[j], 0);}}for (int j 0; j 9; j) {// 数字 1-9 在每一行只能出现一次。char lineCar board[i][j];if (. ! lineCar) {if (line[lineCar - 0 - 1] ! 0) {return false;}line[lineCar - 0 - 1] 1;}// 数字 1-9 在每一列只能出现一次。char columnChar board[j][i];if (. ! columnChar) {if (column[columnChar - 0 - 1] ! 0) {return false;}column[columnChar - 0 - 1] 1;}// 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。if (. ! lineCar) {if (block[j / 3][lineCar - 0 - 1] ! 0) {return false;}block[j / 3][lineCar - 0 - 1] 1;}}}return true;}
}3.提交结果截图 整理完毕完结撒花~