LC-36 有效的数独

主要目标:

根据输入的9x9的数独数据,判断改数独是否有效(有效条件:每个横列都是1-9,每个竖列都是1-9,分成的9个3x3都是1-9)

 

思路:

注意,题目说明了,仅判断数独的有效性,并不判断数独的可解性,所以我们只需根据三个条件简单遍历,判断每一竖列,每一横列,每一3x3不会出现重复元素即可。

其中横列,竖列的判断都很容易,2个嵌套循环的事情。

而3x3的块,我们则需要找出每个块的初始坐标点,有以下方式:

x_start = (i * 3) % 9

y_start = i / 3 * 3     (这里可能有点tricky,数学来说除三乘三是就等于i,但是这里的除是c语言中的整数除,除出来的结果为整数。)

注意这里的i为第i个3x3小块。

然后遍历3x3小块即可

posted @ 2018-09-08 11:24  leo_lee  阅读(172)  评论(0编辑  收藏  举报