题目描述

判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。
数字 1-9 在每一列只能出现一次。
数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。


上图是一个部分填充的有效的数独。

数独部分空格内已填入了数字,空白格用 ‘.’ 表示。

示例 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:

输入:
[["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
解释: 除了第一行的第一个数字从 5 改为 8 以外,空格内其他数字均与 示例1 相同。但由于位于左上角的 3x3 宫内有两个 8 存在, 因此这个数独是无效的。

说明:

一个有效的数独(部分已被填充)不一定是可解的。
只需要根据以上规则,验证已经填入的数字是否有效即可。
给定数独序列只包含数字 1-9 和字符 '.' 。
给定数独永远是 9x9 形式的。

解题
遍历二维数组,判断每一行、每一列、每个3x3方块是否包含重复项即可。代码如下:

public boolean isValidSudoku(char[][] board) {boolean[][] row = new boolean[9][10];boolean[][] column = new boolean[9][10];boolean[][] box = new boolean[9][10];for(int i=0;i<9;i++) {for(int j=0;j<9;j++) {if(board[i][j] != '.') {int num = board[i][j]-'0';int boxIndex = i/3+(j/3)*3;if(row[i][num] || column[j][num] || box[boxIndex][num]) {return false;}row[i][num]=true;column[j][num]=true;box[boxIndex][num]=true;}}}return true;}

2019-03-15-算法-进化(有效的数独)相关推荐

  1. 159.Vue实现个人博客(七)【Vue2.0-路由参数】 2019.03.15

    0.知识点 路由参数 搜索页面路由实现 展示页面路由实现 1.路由参数的形式.作用 参数形式: 路由参数就是URL地址栏当中的网址后面的一段"/dojo-lzz/p/2773364.html ...

  2. Delphi MlSkin v3.9 (2019.4.15)发布啦! 它能让你的程序拥有像QQ一样多彩炫丽的外观...

    组件包和Demo程序下载地址: http://www.pngui.com/filedownload 支持:Delphi7.Delphi2007.Delphi2009.Delphi2010.Delphi ...

  3. 《SRPG游戏开发》导航(2019.03.04更新)

    <SRPG游戏开发>导航 第一章到第五章并没有使用Markdown,且经过CSDN几次改版和取消目录,这几章排版有些怪怪的. 2019.03.04 第十一章(十 - 十二) ,间章 第十一 ...

  4. AI+5G:2019.03.31第11届中国(深圳)IT领袖峰会【IT新未来: 5G与人工智能】内容概要

    AI+5G:2019.03.31第11届中国(深圳)IT领袖峰会[IT新未来: 5G与人工智能]内容概要 导读 5G+AI双核启动会更加珠联璧合.相得益彰. IOT 采集数据 → Deel Learn ...

  5. P1422 小玉家的电费--2022.03.15

    /* P1422 小玉家的电费--2022.03.15 https://www.luogu.com.cn/problem/P1422 */ #include <bits/stdc++.h> ...

  6. [2019.7.31~2019.8.15]纪中集训游记

    开坑 这是一篇(也许会变成一套)无聊的游记. https://jzoj.net/senior/ Day0(2019.7.31) 启程 如果没记错的话,与同学们相约在机场的时间应该是9:00,然而我10 ...

  7. 读书·2019(15本)

    1.B端产品经理必修课       李宽                2019/03/10 2.<幸福终点站>  <超脱>                      2019 ...

  8. E.03.15 Closing of Beloved Dim Sum Hall Leaves a ‘Crater‘ in Reeling Chinatown

    2021.03.15 文章目录 [课程导读] [英文原文] [外刊原文] [课程导读] 只要有唐人街的地方,就一定会有茶餐厅.精致好味的广式料理在海外,已然变成中餐的代名词.然而,一场疫情令全球餐饮业 ...

  9. 猎聘公司面试(黄军威) 面试时间:2019.08.15 java后端

    面试时间:2019.08.15 面试时长:1小时30分钟 面试人:一个面试官+1个人力资源HR 一.面试官的问题 后来回顾了一下,这次的面试太糟了,好几个点当时都答不上来,当时还以为没什么要紧. 面试 ...

  10. Anaconda 2019.03 发布,Python 跨平台科学计算软件

    Python 科学计算包 Anaconda 发布 2019.03 版本,详细更新日志如下: 面向用户更改 conda与Windows Powershell完美集成. Windows Python包中包 ...

最新文章

  1. 秦州:西瓜书 + 南瓜书 吃瓜系列 14. 降维与度量学习(下)
  2. java selectcommand_“对于不返回任何基表信息的 SelectCommand 不支持动态SQL生成”-奇怪的错误,不知道原因! | 学步园...
  3. C++ Boost在Windows和Linux下的编译安装
  4. 多核 linux 绑定,Linux 操作系统下CPU多核心的绑定
  5. php mysql 正则_MySQL 正则表达式
  6. linux weblogic 内存溢出,weblogic 安装升级补丁出现内存溢出问题解决
  7. html弹窗_对付流氓广告弹窗:彻底告别,这一招最有效
  8. python如何创建txt_如何通过读取.txt文件为每个键创建包含多个“列表”的Python字典?...
  9. win7和win8双系统的问题
  10. 数字后端基本概念介绍<Blockage Link>
  11. 数据库的几个基本概念
  12. 算法:回溯十一 Subsets数组的子数组集合4种解法
  13. 【dedecms】DedeCms的搜索引擎优化方法小结
  14. 【VMware的坑爹之路】VMware复制文件卡死死机;无法访问网络地址“*:\“
  15. android rn框架开发的例子,RN与安卓通信架构篇
  16. 计算机学院 拔河比赛加油词,校园拔河比赛加油稿
  17. 云计算前景如何?大专学历学习云计算怎么样?
  18. 长波猝灭剂QSY 21NHS,304014-13-9,QSY21 活性酯特点有哪些
  19. CSS Doodle 生成器
  20. 演讲实录丨戴琼海院士《人工智能:算法·算力·交互》

热门文章

  1. 《零基础看得懂的C语言入门教程 》——(三)轻轻松松理解第一个C语言程序
  2. 营业执照在线一键生成_如何在线制作证件照?证件照一键生成的方法
  3. python画两条曲线_查找在matplotlib中绘制的两条曲线之间的区域(在区域之间填充)...
  4. 霍金竟然亲口承认自己是个赌徒!明明失败了不止一次,“菜鸡”却成了神话!...
  5. 怎样借助Python爬虫给宝宝起个好名字
  6. 如何快速解剖数据背后隐藏的信息
  7. 马云害怕的事还是发生了
  8. php 信号量 关闭,php 信号量
  9. java ftp 判断目录存在_java判断ftp目录是否存在的方法
  10. nashorn js 调用 java_从nashorn(JDK 8 JavaScript引擎)调用char []输入参数调用Java函数?...