博客
关于我
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/

    你可能感兴趣的文章
    Python3笔记——IDE的选择
    查看>>
    python3简单使用requests 用户代理,cookie池
    查看>>
    Python3组播通信编程实现教程(发送者+接收者)
    查看>>
    Python3编写网络爬虫10-数据存储方式三-CSV文件存储
    查看>>
    python3读取redis返回数据带有'b'的问题
    查看>>
    Python3连接MySQL
    查看>>
    Python关于isinstance函数的解析 | 附Demo(全)
    查看>>
    Python3:setup.py:完成所有任务的PIP安装(Build_ext+Install)
    查看>>
    python4.0 gil_Python 并发编程系列--1、浅谈GIL历史及对多线程的影响
    查看>>
    python60行绘图程序_天底下最简单的QT画图板,就一个类,60行代码
    查看>>
    Python: AES加密与解密
    查看>>
    Python: Range() 最大尺寸;动态的还是静态的?
    查看>>
    Python: Windows下用 multiprocessing 的深坑
    查看>>
    python:Could not find platform independent libraries <prefix>解决方法
    查看>>
    Python:datetime tzinfo 时区名称文档
    查看>>
    Python:deepcopy(list) vs new_list = old_list[:]
    查看>>
    Python:Google API - 从消息中获取 mimeTypes
    查看>>
    Python:Google API - 从消息中获取 mimeTypes
    查看>>
    Python:subprocess.call,stdout to file,stderr to file,在屏幕上实时显示stderr
    查看>>
    Python:TypeError:无法连接“str“和“int“对象
    查看>>