
有效的数独
有效的数独
题目
题目地址:https://leetcode-cn.com/problems/valid-sudoku/submissions/
判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。
- 数字
1-9
在每一行只能出现一次。 - 数字
1-9
在每一列只能出现一次。 - 数字
1-9
在每一个以粗实线分隔的3x3
宫内只能出现一次。
上图是一个部分填充的有效的数独。
数独部分空格内已填入了数字,空白格用 ‘.’ 表示。
示例 1:
1 | 输入: |
示例2:
1 | 输入: |
说明:
- 一个有效的数独(部分已被填充)不一定是可解的。
- 只需要根据以上规则,验证已经填入的数字是否有效即可。
- 给定数独序列只包含数字 1-9 和字符 ‘.’ 。
- 给定数独永远是 9x9 形式的。
答案
一次遍历,根据题意,使用三个二维数组来作为缓存,即横、竖、小九宫格
需要注意的是,在缓存小宫格的时候,需要判断一下当前属于哪个小九宫格,下面采用的是
i / 3 + (j / 3) * 3;
公式来计算
1 | public boolean isValidSudoku(char[][] board) { |
本文是原创文章,采用CC BY-NC-SA 4.0协议,完整转载请注明来自jarome