【LeetCode从零单排】No36 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 c

题目

      判断数独是否成立的一道题,看的是某大神的答案,写的太漂亮了。

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.


代码

public class Solution {
	public boolean isValidSudoku(char[][] board) {
	    int count = 9;
	    int blockWidth = 3;
	    for (int i=0; i<count; i++) {
	        boolean[] rowExist = new boolean[count+1];
	        boolean[] colExist = new boolean[count+1];
	        boolean[] matrixExist = new boolean[count+1];
	        for (int j=0; j<count; j++) {
	            int rowNum = board[i][j] == '.' ? -1 : board[i][j] - '0';
	            int colNum = board[j][i] == '.' ? -1 : board[j][i] - '0';
	            int mtxRowIdx = 3*(i/3);
	            int mtxColIdx = 3*(i%3);
	            int matrixNum = board[mtxRowIdx + j/3][mtxColIdx + j%3] == '.' ? 
	                                -1 : board[mtxRowIdx + j/3][mtxColIdx + j%3] - '0';
	            if (rowNum > 0 && rowExist[rowNum] ||
	                colNum > 0 && colExist[colNum] || 
	                matrixNum > 0 && matrixExist[matrixNum]) {
	                return false;        
	            }
	            if (rowNum > 0)
	                rowExist[rowNum] = true;
	            if (colNum > 0)
	                colExist[colNum] = true;
	            if (matrixNum > 0)
	                matrixExist[matrixNum] = true;
	        }
	    }
	    return true;
	}}



/********************************

* 本文来自博客  “李博Garvin“

* 转载请标明出处:http://blog.csdn.net/buptgshengod

******************************************/



目录
相关文章
|
6月前
|
存储 SQL 算法
LeetCode 题目 65:有效数字(Valid Number)【python】
LeetCode 题目 65:有效数字(Valid Number)【python】
LeetCode Contest 178-1368. 使网格图至少有一条有效路径的最小代价 Minimum Cost to Make at Least One Valid Path in a Grid
LeetCode Contest 178-1368. 使网格图至少有一条有效路径的最小代价 Minimum Cost to Make at Least One Valid Path in a Grid
LeetCode 367. Valid Perfect Square
给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。
98 0
LeetCode 367. Valid Perfect Square
LeetCode 242. Valid Anagram
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。
87 0
LeetCode 242. Valid Anagram
|
canal
LeetCode 125. Valid Palindrome
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
94 0
LeetCode 125. Valid Palindrome
|
算法
LeetCode 65. Valid Number
验证给定字符串是否可以解释为十进制数。
96 0
LeetCode 65. Valid Number
Leetcode-Easy 20. Valid Parentheses
Leetcode-Easy 20. Valid Parentheses
110 0
Leetcode-Easy 20. Valid Parentheses
LeetCode 20:有效的括号 Valid Parentheses
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. 有效字符串需满足: 左括号必须用相同类型的右括号闭合。
764 0
|
Java
[LeetCode] Valid Parentheses 验证括号是否有效闭合
链接:https://leetcode.com/problems/valid-parentheses/#/description难度:Easy题目:20.
1014 0
|
人工智能 Java
LeetCode 36 Valid Sudoku(有效数独)
版权声明:转载请联系本人,感谢配合!本站地址:http://blog.csdn.net/nomasp https://blog.csdn.net/NoMasp/article/details/50118647 翻译 数独板被部分填充,空格部分用'.'来填充。
944 0