36.有效的数独,超简单做法,一看就懂
评论区看到的,只能说官方题解__都不看。
从左往右、从上往下的顺序遍历一次board,完成3个条件的检验
,这其中有个j/3 + (i/3)*3
最关键,用来判断是否每个数是否存在box中,j/3 + (i/3)*3
的解析如下:在3*9
的矩阵中,每个数属于哪个box就只取决于纵坐标,纵坐标为0/1/2的都属于box[0],纵坐标为3/4/5的都属于box[1],纵坐标为6/7/8的都属于box[2].也就是j/3
。而对于9x9
的矩阵,我们光根据j/3
得到0/1/2还是不够的,可能加上一个3的倍数,例如加0x3
,表示本行的box,加1x3
,表示在下一行的box,加2x3
,表示在下两行的box,这里的0/1/2怎么来的?和j/3
差不多同理,也就是i/3
class Solution {public boolean isValidSudoku(char[][] board) {// 存储每一行的每个数是否出现过,默认初始情况下,每个数都没出现过int [][]row =new int[9][9];int [][]col =new int[9][9];int [][]box =new int[9][9];for (int i = 0; i < 9; i++) {for (int j = 0; j < 9; j++) {if (board[i][j]=='.'){continue;}// -0为了转数字,-1是为了出现9*9数组,不然就把上面数组的[9][9]->[9][10]int curNum = board[i][j]-'0' - 1;// 判断是否在行、列、box中出现if (row[i][curNum]==1){return false;}if (col[j][curNum]==1){return false;}if (box[j/3 + (i/3) * 3][curNum]==1){return false;}// 之前都没出现过,现在出现了,下次再遇见直接falserow[i][curNum]=1;col[j][curNum]=1;box[j/3 + (i/3) * 3][curNum]=1;}}return true;}
}
36.有效的数独,超简单做法,一看就懂相关推荐
- android手机投影电视软件,Type-C手机投屏电视/投影仪超简单,快看你的可以吗?...
原标题:Type-C手机投屏电视/投影仪超简单,快看你的可以吗? 在智能手机普及之前,大家的娱乐主要还是看电视,或者用电脑上网.玩游戏,而现在大家最离不开的就是手机.但是教授也发现一个现象,很多机友对 ...
- 微信云服务器发长视频朋友圈,今天才知道,微信朋友圈还能发5分钟长视频,超简单,一看就会...
原标题:今天才知道,微信朋友圈还能发5分钟长视频,超简单,一看就会 朋友圈里不仅可以晒照片 还能分享一些好玩的小视频 但通常来说 小视频最多只能拍15秒 有些长时间的视频就发不了了 今天,厦门银龄教您 ...
- 设计模式也可以这么简单,一看就懂
Java面试笔试面经.Java技术每天学习一点 公众号Java面试 关注我不迷路 作者:javadoop 来源:https://javadoop.com/post/design-pattern 序 一 ...
- linux网络配置(超简单,一看就会)
2022.11.19 文章目录 前言 一.linux网络? 二.使用步骤 1.查看本机ip 2.进入root用户 3.进入配置网络的目录 4.配置网络 5.重启网络服务 6.查看IP并测试网络 总结 ...
- gettext()方法输出空白_如何将文档内容输出为无水印图片?超简单的操作方法看这里...
在实际的工作生活中,我们可能会遇到这样的情况:文档内容太多,想截图以图片的形式展现,但是文档超过一屏无法全部截取,将其保存为图片的形式,但使用WPS将文档直接输出为无水印图片需要开启WPS会员. 一连 ...
- win10+黑苹果 单硬盘 双系统 超简单安装 一看就会
注意:此教程全机型通用 ,只需要替换相关的efi文件即可.安装黑苹果的教程已经很多了,本人学的皮毛只适合跟我配置差不多的笔记本电脑,比如神州系列啥的.如果本文出现任何问题请及时指正,谢谢. 电脑型号 ...
- 华为手机锁屏下拉怎么设置_华为手机怎么设置会滚动的锁屏文字?设置步骤超简单,一看就会...
小米手机设置锁屏滚动文字是通过自定义运营商名称来实现的,但是华为手机并不能自定义运营商名称,大部分华为手机只能选择显示或不显示运营商名称.那么问题来了,华为手机要怎么操作才能让锁屏文字滚动起来呢?按照 ...
- Java的反射机制,内含超简单实例代码(搞懂反射,这一篇就够了)
一 首先来说说反射机制的概念: 程序在运行时, 对于类来说,可以知道该类的任意属性和方法: 对于对象来说,可以调用该对象的任意方法和属性: 就以上这种动态获取信息的机制就称为Java的反射机制 彻底了 ...
- ipv6单播地址包括哪两种类型_超简单!一文搞懂IPv6地址
为什么要使用IPv6地址 由于IPv4最大的问题在于网络地址资源有限,严重制约了互联网的应用和发展.IPv6地址长度为128位,是v4长度的4倍.现有标准IPv4只支持大概40亿(4×109)个网络地 ...
最新文章
- 清除Squid缓存的小工具
- 网友提问:关于CX_VSI_SYSTEM_ERROR异常,Fiori病毒扫描参数文件
- how SAP CRM settype structure names are determined
- 全栈测试:平衡单元测试和端到端测试
- 使用BusyBox制作根文件系统的操作步骤
- (9)css常用样式--盒子模型
- CodeForeces 842d Vitya and Strange Lesson ——(带lazy标记的01字典树)
- java苹果沙盒验证参数问题_php – iOS7 – 收据未在沙盒验证 – 错误21002(java.lang.IllegalArgumentException)...
- 会声会影2018,带你体验不一样的光影世界!
- 最大子序列和算法C语言,最大子序列和O(N)算法简单分析『神兽必读』
- 二十四、Java集合框架(一)
- SEO—搜索引擎优化初探
- 数字孪生管理系统,智慧校园建设规划方案
- 2014蓝桥杯C++A组——史丰收速算
- 电信无限流量卡无服务器,电信无限流量卡实测 牟足劲一天刷30GB
- MySQL Workbench建表时 PK NN UQ B UN ZF AI G的含义
- 搜狗浏览器屏蔽广告插件_搜狗浏览器屏蔽芒果TV视频广告:被判不正当竞争,赔了12万...
- 混音软件哪个好用?这几个软件不容错过
- docker学习5-docker安装tomcat环境和部署war包
- Windows内核开发调试环境配置详解