LeetCode Valid Sudoku
原题链接在这里:https://leetcode.com/problems/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 '.'
.
A partially filled sudoku which is valid.
Note:
A valid Sudoku board (partially filled) is not necessarily solvable. Only the filled cells need to be validated.
题解:
先一行一行检查,再一列一列检查,这里注意外层for loop是j
最后一个一个小方块来检查,关键是如何检查sub box. 这里设值index 0-8 box, loop row with box/3*3 - box/3*3+3, loop column with box%3*3 - box%3*3+3.
Time Complexity: O(n^2). n = board.length. Space: O(1).
AC Java:
1 public class Solution { 2 public boolean isValidSudoku(char[][] board) { 3 if(board == null || board.length != 9 || board[0].length != 9){ 4 return false; 5 } 6 7 HashSet<Character> hs = new HashSet<Character>(); 8 //check each row 9 for(int i = 0; i<board.length; i++){ 10 hs.clear(); 11 for(int j = 0; j<board[0].length; j++){ 12 if(board[i][j] != '.'){ 13 if(!hs.contains(board[i][j])){ 14 hs.add(board[i][j]); 15 }else{ 16 return false; 17 } 18 } 19 } 20 } 21 22 //check each column 23 for(int j = 0; j<board[0].length; j++){ 24 hs.clear(); 25 for(int i = 0; i<board.length; i++){ 26 if(board[i][j] != '.'){ 27 if(!hs.contains(board[i][j])){ 28 hs.add(board[i][j]); 29 }else{ 30 return false; 31 } 32 } 33 } 34 } 35 36 //check each subbox 37 for(int box = 0; box<9; box++){ 38 hs.clear(); 39 for(int i = box/3*3; i<box/3*3+3; i++){ 40 for(int j = box%3*3; j<box%3*3+3; j++){ 41 if(board[i][j] != '.'){ 42 if(!hs.contains(board[i][j])){ 43 hs.add(board[i][j]); 44 }else{ 45 return false; 46 } 47 } 48 } 49 } 50 } 51 return true; 52 } 53 }
跟上Sudoku Solver.
转载于:https://www.cnblogs.com/Dylan-Java-NYC/p/4825064.html
LeetCode Valid Sudoku相关推荐
- LeetCode - Valid Sudoku
题目: Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board could ...
- LeetCode: Valid Sudoku
一次过.. 1 class Solution { 2 public: 3 bool isValidSudoku(vector<vector<char> > &board ...
- LeetCode 36. Valid Sudoku(九宫格数独)
依次检查每行,每列,每个子九宫格是否出现重复元素,如果出现返回false,否则返回true. 难点在于表示第i个九宫格每个格点的坐标. 观察行号规律: 第0个九宫格:000111222; 第1个九宫格 ...
- leetcode 36. Valid Sudoku | 37. Sudoku Solver(数独)
36. Valid Sudoku https://leetcode.com/problems/valid-sudoku/ 题解 class Solution {public boolean isVal ...
- LeetCode 36. Valid Sudoku
LeetCode 36. Valid Sudoku Solution1:我的答案,比较笨.但是清晰易懂好上手啊~~~ class Solution { public:bool isValidSudok ...
- Valid Sudoku leetcode java
题目: Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board could ...
- 【LeetCode从零单排】No36 Valid Sudoku
题目 判断数独是否成立的一道题,看的是某大神的答案,写的太漂亮了. Determine if a Sudoku is valid, according to: Sudoku Puzzles ...
- 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 ...
最新文章
- 《几何与代数导引》习题1.35.4
- 马斯克即将解锁海上发射!SpaceX海洋太空港最早明年可投入使用
- linux 搭建Tomcat
- linux运维工程师
- python处理json_Python处理JSON
- postgresql存储函数实现大量模拟数据插入
- checkPathValidity 检查所有agent的corridor的m_path是否有效
- linux系统调用函数printf,使用AT&T语法将整数打印为字符串,并使用Linux系统调用而不是printf...
- [leetcode]241. 为运算表达式设计优先级
- Structs框架原理
- SMB协议(445)
- 黑盒测试 白盒测试
- 网络创业理论与实践(网络通识)
- 6个好用免费的LiDAR数据处理软件【2021最新】
- 生产级搭建openresty+waf防火墙
- android tv盒子哪个好用,2020什么电视盒子最好?超良心的三大实用选购技巧
- [博客杂志]2007年中国最红的十大美女明星
- mysql DAYOFWEEK 和 WEEKDAY函数
- 输入自变量范围matlab,matlab已知约束条件求自变量范围
- 计算机毕业设计源代码Python毕业论文题目基于Python实现的学生在线选课系统[包运行成功]
热门文章
- 依赖注入 这样的坑游戏编程要谨慎
- 经验分享:聊聊多人游戏同步那点事
- 超过一半的受访者表示愿意升级到Windows 11
- TCP/UDP常见端口参考(超全_面试题常用_建议收藏)
- Oracle Spatial-元数据及SDO_GEOMETRY
- 解决SecureCRT中文版数据库里没找到防火墙'无'的错误提示
- Linux server配置安装Java,Tomcat服务器
- ----------------学习进度表---------------------------------
- android 介绍0
- python和javascript哪个好_Python