博客
关于我
Leetcode 36. 有效的数独
阅读量:244 次
发布时间:2019-03-01

本文共 634 字,大约阅读时间需要 2 分钟。

数独是一种经典的逻辑题目,它的规则非常简单明确:一个9x9的网格中,每一行、每一列以及每个3x3的小宫格都必须包含数字1到9,且每个数字只能出现一次。给定的数独可能已经部分填充了数字,剩下的单元格用点号表示。我们的任务是编写一个函数,判断给定的数独是否有效。

为了验证数独的有效性,我们需要对每一行、每一列以及每个3x3的小宫格进行检查,确保它们都满足不重复的条件。具体步骤如下:

  • 初始化标记数组:创建一个大小为10的数组used,用于记录数字1到9是否已经在当前检查范围内出现过。used[0]可以忽略,因为数字从1到9对应索引1到9。

  • 检查每一行:遍历数独的每一行,检查该行的每个单元格。如果单元格包含数字,判断该数字是否已经被使用过。如果已经被使用过,返回false。否则,将该数字标记为已使用。

  • 检查每一列:同样地,遍历数独的每一列,检查每个单元格的数字是否已重复。使用与行检查相同的标记数组进行判断。

  • 检查每个3x3的小宫格:将数独的网格分为9个3x3的小宫格。例如,第一个小宫格包括第1到3行和第1到3列,第二个小宫格包括第1到3行和第4到6列,依此类推。对于每个小宫格,同样检查每个单元格的数字是否已重复。

  • 在整个检查过程中,一旦发现任何一个数字在同一行、同一列或同一小宫格中重复出现,立即返回false,否则所有检查完成后返回true。

    通过这种方法,我们可以有效地验证一个数独是否满足所有规则,确保每一行、每一列和每个小宫格都包含1到9不重复的数字。

    转载地址:http://nghv.baihongyu.com/

    你可能感兴趣的文章
    poj2195 bfs+最小权匹配
    查看>>
    POJ2251
    查看>>
    POJ2253-Frogger
    查看>>
    poj2309
    查看>>
    POJ2390 Bank Interest【水题】
    查看>>
    poj2398
    查看>>
    poj2478欧拉函数
    查看>>
    poj2546
    查看>>
    POJ2728 Desert King
    查看>>
    POJ2794 Double Patience[离散概率 状压DP]
    查看>>
    poj2828(线段树查找序列第k小的值)
    查看>>
    POJ2891:Strange Way to Express Integers——题解
    查看>>
    poj3045 Cow Acrobats(二分最大化最小值)
    查看>>
    poj3061 Subsequence(尺取法)
    查看>>
    poj3074 DLX精确覆盖
    查看>>
    poj3252(组合数)
    查看>>
    Qt笔记——QToolBox开发简易QQ聊天界面
    查看>>
    poj3307
    查看>>
    Qt笔记——QString与隐式共享、MVC架构
    查看>>
    Qt笔记——QSemaphore处理生产者/消费者模式
    查看>>