请你判断一个 9 x 9
的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。
- 数字
1-9
在每一行只能出现一次。 - 数字
1-9
在每一列只能出现一次。 - 数字
1-9
在每一个以粗实线分隔的3x3
宫内只能出现一次。(请参考示例图)
注意:
- 一个有效的数独(部分已被填充)不一定是可解的。
- 只需要根据以上规则,验证已经填入的数字是否有效即可。
- 空白格用
'.'
表示。
本题难点在于如何判断九宫格中出现过,我的写法是再用一个标记数组去记录board[i][j]是属于哪个格子的,另一种写法在于使用哈希表和i/3*3+j/3去定位属于哪个格子
解释:首先格子分为0-8九个格子,j/3得到该数的位置在于列的0-2中的一个,i/3得到该数的位置位于行0-2中的一个,而i/3得出的0-2中每一个行都相当于3个列,则i/3*3+j/3则可得出0-8中的对应的格子位置
我的写法:
class Solution {
public:
b