《leetcode》valid-sudoku
题目描述
Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules.
The Sudoku board could be partially filled, where empty cells are filled with the character’.’.
解析:该题目默认我们是知道什么叫数独的(数独的规则是:每一行都不能重复,每一列都不能重复,9X9的单元格内不能重复),如此说来,我们只需要检验三件事:
1.检验行是否有重复;
2.检验列是否有重复;
3.检验9x9的块是否有重复
import java.util.HashSet;
import java.util.Set;
public class Solution {public boolean isValidSudoku(char[][] board) {if(board.length<9||board[0].length<9){return false;}Set<Character> row = new HashSet<>();//存取一行Set<Character> col = new HashSet<>();//存取一列for(int i=0;i<board.length;i++){row.clear();col.clear();for(int j=0;j<board[0].length;j++){if(i%3==0&&j%3==0){//检验块if(!checkBlock(board,i,j)){//不满足条件return false;}}if(board[i][j]!='.'){//检验行if(row.contains(board[i][j])){return false;}else {row.add(board[i][j]);}}if(board[j][i]!='.'){//检验列if(col.contains(board[j][i])){return false;}else {col.add(board[j][i]);}}}}return true;}public boolean checkBlock(char [][]board,int row,int col){//检验块Set<Character> set =new HashSet<>();for(int i=row;i<row+3;i++){for(int j=col;j<col+3;j++){if(board[i][j]!='.'){//不是.就开始检验if(set.contains(board[i][j])){return false;}else {set.add(board[i][j]);}}}}return true;}
}
《leetcode》valid-sudoku相关推荐
- LeetCode 36. Valid Sudoku
LeetCode 36. Valid Sudoku Solution1:我的答案,比较笨.但是清晰易懂好上手啊~~~ class Solution { public:bool isValidSudok ...
- leetcode 36. Valid Sudoku | 37. Sudoku Solver(数独)
36. Valid Sudoku https://leetcode.com/problems/valid-sudoku/ 题解 class Solution {public boolean isVal ...
- 《LeetCode》数据结构入门板块
文章目录 <LeetCode题>数据结构入门板块 第1天 数组 217.存在重复元素[简单,哈希表] 53.最大子序和[简单,动态规划,贪心] 第2天 数组 1.两数之和[简单,哈希表] ...
- LeetCode 36. Valid Sudoku(九宫格数独)
依次检查每行,每列,每个子九宫格是否出现重复元素,如果出现返回false,否则返回true. 难点在于表示第i个九宫格每个格点的坐标. 观察行号规律: 第0个九宫格:000111222; 第1个九宫格 ...
- leetcode之Valid Sudoku有效的数独(一步步改进代码)
题目链接:Valid Sudoku有效的数独 题目已经十分确定的说了只有1~9,因此标记法无疑是非常好的选择. 基本思路:对行.列.小数独块分别用一个size为9的数组来标记数字1~9在本行(列/块) ...
- [leetcode]36. Valid Sudoku c语言
题目 Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board could ...
- LeetCode T36 Valid Sudoku
文章目录 题目地址 题目描述 思路 题解 题目地址 中文:https://leetcode-cn.com/problems/valid-sudoku/ 英文:https://leetcode.com/ ...
- Java for LeetCode 036 Valid Sudoku
Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board could be ...
- 《leetcode》valid-parentheses
题目描述 Given a string containing just the characters'(',')','{','}','['and']', determine if the input ...
最新文章
- C++: byte和int的相互转化
- mousedown(function(){ return false; })作用
- python第一周:python初识、流程控制
- Android 4.2 通知通过PendingIntent启动Activity失败的问题
- 领域应用 | 知识图谱的技术与应用
- 10 SD配置-企业结构-分配-给销售组织分配部门(Division)
- es使用pencentiles对网站访问延时统计
- 4.数据库的连接(编目)-远程连接
- 学习 Shell —— 括号、引号
- 【渝粤教育】电大中专药物化学基础作业 题库
- oracle 按照中文姓首字母排序,按照偏旁部首,笔画排序 sql
- 小程序wx.request通过post方式提交数据给服务器-小程序支付开发教程
- python3.6library 学习 1.introduction,2.built-infunction
- Android市场-开发者账号注册等-移动开放平台网址收藏
- 差分GPS接收机定位原理
- KBQA知识问答概述
- 三年开发的我,靠半年来刷的面试宝典,拿到了腾讯、阿里、字节offer!
- SpringBoot集成Redis实战——步骤、坑点、解决方案
- 【Word】实习证明简易模板
- implement和extend的区别 在java中
热门文章
- 算法训练营05-二叉树
- linux设置docker自动启动,CentOS7安装Docker配置服务端和容器自启动
- k8s问题 CrashLoopBackOff
- Python字符串介绍
- Linux Shell脚本 - 什么是Shell
- java不使用除号实现除法运算_LeetCode29 Medium 不用除号实现快速除法
- 怎么获取web开发怎么获取手机的唯一标识_PYTHON实现北京住宅小区数据抓取-(Web服务API-地点检索服务)
- activemq 控制台怎么看生产信息_Jmeter中间件处理-ActiveMQ
- 学校计算机数据采集处理系统,一种计算机数据采集处理分析系统的制作方法
- swift 拖动按钮_Swift下使用UICollectionView 实现长按拖拽功能