• LeetCode第三十六题-判断九宫格是否有效


    Valid Sudoku

    问题简介:确定9x9数独格是否有效, 只需要根据以下规则验证已填充的单元格:

    1.每行必须包含数字1-9而不重复

    2.每列必须包含数字1-9而不重复

    3.网格的9个3x3子框中的每一个必须包含数字1-9而不重复

    注:

    1.数独板(部分填充)可能有效,但不一定是可解决的

    2.只需要根据上述规则验证已填充的单元格

    3.给定的板只包含数字1-9和字符’.’

    4.给定的电路板尺寸始终为9x9

    举例:

    1:

    输入:

    [

    [“5”,“3”,".",".",“7”,".",".",".","."],

    [“6”,".",".",“1”,“9”,“5”,".",".","."],

    [".",“9”,“8”,".",".",".",".",“6”,"."],

    [“8”,".",".",".",“6”,".",".",".",“3”],

    [“4”,".",".",“8”,".",“3”,".",".",“1”],

    [“7”,".",".",".",“2”,".",".",".",“6”],

    [".",“6”,".",".",".",".",“2”,“8”,"."],

    [".",".",".",“4”,“1”,“9”,".",".",“5”],

    [".",".",".",".",“8”,".",".",“7”,“9”]

    ]

    输出: true

    2:

    Input:

    [

    [“8”,“3”,".",".",“7”,".",".",".","."],

    [“6”,".",".",“1”,“9”,“5”,".",".","."],

    [".",“9”,“8”,".",".",".",".",“6”,"."],

    [“8”,".",".",".",“6”,".",".",".",“3”],

    [“4”,".",".",“8”,".",“3”,".",".",“1”],

    [“7”,".",".",".",“2”,".",".",".",“6”],

    [".",“6”,".",".",".",".",“2”,“8”,"."],

    [".",".",".",“4”,“1”,“9”,".",".",“5”],

    [".",".",".",".",“8”,".",".",“7”,“9”]

    ]

    输出: false

    解释: 左上角的3*3里有两个8所以答案为false

    解法一:

    通过set集合对每行每列的元素进行判断,这里的难点是在小的33九宫格里,要注意小九宫格坐标的计算,观察:

    观察行号规律:

    第 i=0 个九宫格:000111222; 第1个九宫格:000111222; 第2个九宫格:000111222;第3个九宫格:333444555; 第4个九宫格:333444555; 第5个九宫格:333444555;第6个九宫格:666777888; 第7个九宫格:666777888; 第8个九宫格:666777888;

    可见对于每三个九宫格行号增3;即可表示为对3作商,因此第i个九宫格的第j个格点的行号加偏移量可表示为i/33+j/3

    观察列号规律:

    第0个九宫格:012012012; 第1个九宫格:345345345; 第2个九宫格:678678678;第3个九宫格:012012012; 第4个九宫格:345345345; 第5个九宫格:678678678;第6个九宫格:012012012; 第7个九宫格:345345345; 第8个九宫格:678678678;

    可见对于下个九宫格列号增3,循环周期为3;对于单个九宫格,每个格点行号增1,周期也为3。因此第i个九宫格的第j个格点的列号加偏移量可表示为i%3*3+j%3

    小白刷题之路,请多指教— — 要么大器晚成,要么石沉大海

  • 相关阅读:
    我的ZigBee学习之路
    php form表单post提交获取不到数据,而使用get提交能获取到数据 的解决办法
    Mac phpstorm破解版安装(简单,有效)
    Mac下phpstorm 浏览器出现 502 bad gateway 解决办法
    LayUI之table数据表格获取行、行高亮等相关操作
    钉钉自定义机器人配合SVN钩子事件进行消息的推送实践
    电脑无故失去焦点,罪魁祸首是谁?终极解决办法
    Java实现的电脑已连接WiFi热点的导入导出小工具 wifi备份
    C# DataGridView自定义分页控件
    C# DataGridView控件禁止拷贝数据
  • 原文地址:https://www.cnblogs.com/lalalaczq/p/10848622.html
Copyright © 2020-2023  润新知