LeetCode 36 Valid Sudoku(合法的数独)
1. 满足每一行的数字都只能是1~9,并且不能产生重复
2. 满足每一列的数字都只能是1~9,并且不能产生重复
3. 满足每一个3*3的正方形块中的数字只能是1~9,并且不能产生重复
package leetcode_50; import java.util.Arrays; /***
*
* @author pengfei_zheng
* 判断数组是否合法
*/
public class Solution36 {
public static boolean isValidSudoku(char[][] board) {
int [][]row = new int[9][9];
int [][]column = new int[9][9];
int [][]cube = new int[9][9];
for(int i = 0 ; i < 9 ; i ++){
Arrays.fill(row[i],0);
Arrays.fill(column[i], 0);
Arrays.fill(cube[i], 0);
}
for(int i = 0 ; i < 9 ; i++){
for(int j = 0; j < 9 ; j++){
if(board[i][j]!='.'){
//tips: char转为对应的数字需要减去48 此处得到对一个数字并且减去1
int num = board[i][j]-49;
int k = i / 3 * 3 + j / 3;
//这里的num表示当前的在该行下是否已经填入过,如果该num已经使用过则返回
if(row[i][num]!=0 || column[j][num]!=0 || cube[k][num]!=0)
return false;
else
row[i][num] = column[j][num] = cube[k][num] = 1;
}
}
}
//只有当全部的判断均正常进行时,才能返回true
return true;
}
}
LeetCode 36 Valid Sudoku(合法的数独)的更多相关文章
- LeetCode:36. Valid Sudoku,数独是否有效
LeetCode:36. Valid Sudoku,数独是否有效 : 题目: LeetCode:36. Valid Sudoku 描述: Determine if a Sudoku is valid, ...
- [LeetCode] 36. Valid Sudoku 验证数独
Determine if a 9x9 Sudoku board is valid. Only the filled cells need to be validated according to th ...
- [leetcode]36. Valid Sudoku验证数独
Determine if a 9x9 Sudoku board is valid. Only the filled cells need to be validated according to th ...
- leetCode 36.Valid Sudoku(有效的数独) 解题思路和方法
Valid Sudoku Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku bo ...
- LeetCode 36 Valid Sudoku
Problem: Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board ...
- 蜗牛慢慢爬 LeetCode 36.Valid Sudoku [Difficulty: Medium]
题目 Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board could ...
- Java [leetcode 36]Valid Sudoku
题目描述: Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board cou ...
- LeetCode 36. Valid Sudoku (Medium)
题目 Determine if a 9 x 9 Sudoku board is valid. Only the filled cells need to be validated according ...
- LeetCode 36. Valid Sudoku (C++)
题目: Determine if a 9x9 Sudoku board is valid. Only the filled cells need to be validated according t ...
随机推荐
- HTTP 请求头与请求体 - 某熊的全栈之路 - SegmentFault
本文从属于笔者的HTTP 理解与实践系列文章,对于HTTP的学习主要包含HTTP 基础.HTTP 请求头与请求体.HTTP 响应头与状态码.HTTP 缓存这四个部分,而对于HTTP相关的扩展与引申,我 ...
- 3D HTML5 Logo标志 超炫酷旋转特效
今天又要为大家带来一款超酷的HTML5 Canvas 3D动画特效,是一款可以旋转的HTML5 Logo标志.画面上一共有两块可旋转的区域,第一是可旋转的背景,第二则是可旋转的Logo标志.Logo标 ...
- iOS:TabBarController 显示/隐藏第一级页面的TabBar
- (void)setTabBarHidden:(BOOL)hidden { UIView *tab = self.tabBarController.view; ) { return; } UIVie ...
- struts实现国际化
上篇博客学习了Java国际化的一些基础知识,了解了这些知识之后,我们可以更好的过度到struts国际化. 本篇博客主要学习struts国际化的实现: 1.配置环境设置baseName. 在struts ...
- Python之XML解析详解
什么是XML? XML 指可扩展标记语言(eXtensible Markup Language). XML 被设计用来传输和存储数据. XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这 ...
- vim在系统剪切板的复制与粘贴
https://blog.csdn.net/zhangxiao93/article/details/53677764
- logback.xml常用配置详解
<?xml version="1.0" encoding="UTF-8"?><configuration debug="false& ...
- 数据注解特性--NotMapped
NotMapped特性可以应用到领域类的属性中,Code-First默认的约定,是为所有带有get,和set属性选择器的属性创建数据列.. NotManpped特性打破了这个约定,你可以使用NotMa ...
- Tomcat------如何更改被IIS占用的80端口
1.打开cmd,运行'netstat -ano'发现80端口被pid=4的进程占用 2.打开任务管理器,发现pid=4的进程,其实是system进程,其对应的进程描述是NT kernel & ...
- Jackson Gson Json.simple part 2
这篇blog介绍 Jackson 的特点和使用方法 Jackson支持三种使用方法 流API(streaming api Incremental parsing/generation) JsonPar ...