题目描述

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相关推荐

  1. LeetCode 36. Valid Sudoku

    LeetCode 36. Valid Sudoku Solution1:我的答案,比较笨.但是清晰易懂好上手啊~~~ class Solution { public:bool isValidSudok ...

  2. leetcode 36. Valid Sudoku | 37. Sudoku Solver(数独)

    36. Valid Sudoku https://leetcode.com/problems/valid-sudoku/ 题解 class Solution {public boolean isVal ...

  3. 《LeetCode》数据结构入门板块

    文章目录 <LeetCode题>数据结构入门板块 第1天 数组 217.存在重复元素[简单,哈希表] 53.最大子序和[简单,动态规划,贪心] 第2天 数组 1.两数之和[简单,哈希表] ...

  4. LeetCode 36. Valid Sudoku(九宫格数独)

    依次检查每行,每列,每个子九宫格是否出现重复元素,如果出现返回false,否则返回true. 难点在于表示第i个九宫格每个格点的坐标. 观察行号规律: 第0个九宫格:000111222; 第1个九宫格 ...

  5. leetcode之Valid Sudoku有效的数独(一步步改进代码)

    题目链接:Valid Sudoku有效的数独 题目已经十分确定的说了只有1~9,因此标记法无疑是非常好的选择. 基本思路:对行.列.小数独块分别用一个size为9的数组来标记数字1~9在本行(列/块) ...

  6. [leetcode]36. Valid Sudoku c语言

    题目 Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board could ...

  7. LeetCode T36 Valid Sudoku

    文章目录 题目地址 题目描述 思路 题解 题目地址 中文:https://leetcode-cn.com/problems/valid-sudoku/ 英文:https://leetcode.com/ ...

  8. Java for LeetCode 036 Valid Sudoku

    Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board could be ...

  9. 《leetcode》valid-parentheses

    题目描述 Given a string containing just the characters'(',')','{','}','['and']', determine if the input ...

最新文章

  1. C++: byte和int的相互转化
  2. mousedown(function(){ return false; })作用
  3. python第一周:python初识、流程控制
  4. Android 4.2 通知通过PendingIntent启动Activity失败的问题
  5. 领域应用 | 知识图谱的技术与应用
  6. 10 SD配置-企业结构-分配-给销售组织分配部门(Division)
  7. es使用pencentiles对网站访问延时统计
  8. 4.数据库的连接(编目)-远程连接
  9. 学习 Shell —— 括号、引号
  10. 【渝粤教育】电大中专药物化学基础作业 题库
  11. oracle 按照中文姓首字母排序,按照偏旁部首,笔画排序 sql
  12. 小程序wx.request通过post方式提交数据给服务器-小程序支付开发教程
  13. python3.6library 学习 1.introduction,2.built-infunction
  14. Android市场-开发者账号注册等-移动开放平台网址收藏
  15. 差分GPS接收机定位原理
  16. KBQA知识问答概述
  17. 三年开发的我,靠半年来刷的面试宝典,拿到了腾讯、阿里、字节offer!
  18. SpringBoot集成Redis实战——步骤、坑点、解决方案
  19. 【Word】实习证明简易模板
  20. implement和extend的区别 在java中

热门文章

  1. 算法训练营05-二叉树
  2. linux设置docker自动启动,CentOS7安装Docker配置服务端和容器自启动
  3. k8s问题 CrashLoopBackOff
  4. Python字符串介绍
  5. Linux Shell脚本 - 什么是Shell
  6. java不使用除号实现除法运算_LeetCode29 Medium 不用除号实现快速除法
  7. 怎么获取web开发怎么获取手机的唯一标识_PYTHON实现北京住宅小区数据抓取-(Web服务API-地点检索服务)
  8. activemq 控制台怎么看生产信息_Jmeter中间件处理-ActiveMQ
  9. 学校计算机数据采集处理系统,一种计算机数据采集处理分析系统的制作方法
  10. swift 拖动按钮_Swift下使用UICollectionView 实现长按拖拽功能