LeetCode---Valid Sudoku解题分析

原创 2016年05月30日 21:40:08

题意描述:判断矩阵是否是一个数独矩阵。所谓的数独矩阵就是9*9的矩阵,每一行一个元素只出现一次、每一列一个元素只出现一次,并且在任意一个小矩阵中一个元素只出现一次(所说的元素指0-9这九个数字)

矩阵如下图所示:


解题分析:解题思路:注意题目中说的是只要当前已经填充的数字是合法的就可以,不一定要这个数独是有解的。依次判断已给定的矩阵每一行、每一列、以及每个小矩阵上是否是有重复数字即可;

public boolean isValid(boolean[] visited, char ch){//判断当前位置是否为'.',或是否被访问过
	if(ch == '.')//如果当前位置为'.'则返回true
		return true;
	
	int num = ch - '0';
	if(num < 1 || num > 9 || visited[num-1])//如果当前位置访问过则返回false
		return false;
	
	visited[num-1] = true;//将标记数字标记为true,表示该数字已访问过
	return true;
}
public boolean isValidSudoku(char[][] board){		
	boolean[] visited = new boolean[9];
	//判断每一行是否有重复数字
	for(int i=0; i<9; i++){
		Arrays.fill(visited, false);
		for(int j=0; j<9; j++){
			if(!isValid(visited, board[i][j]))
				return false;
		}
	}
	//判断每一列是否有重复数字
	for(int i=0; i<9; i++){
		Arrays.fill(visited, false);
		for(int j=0; j<9; j++){
			if(!isValid(visited, board[j][i]))
				return false;
		}
	}
	//判断每个子矩阵是否有重复数字
	for(int i=0; i<9; i+=3){
		for(int j=0; j<9; j+=3){
			Arrays.fill(visited, false);
			for(int k=0; k<9; k++){
				if(!isValid(visited, board[i+k/3][j+k%3]))
					return false;
			}
		}
	}
	
	return true;
}



版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

LeetCode 36. Valid Sudoku(数独游戏)

原题网址:https://leetcode.com/problems/valid-sudoku/ Determine if a Sudoku is valid, according to: Sud...

leetcode 37. Sudoku Solver 36. Valid Sudoku 数独问题

三星机试也考了类似的题目,只不过是要针对给出的数独修改其中三个错误数字,总过10个测试用例只过了3个与世界500强无缘了 36. Valid Sudoku Determine if a Su...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

LeetCode-36-Valid Sudoku(模拟/遍历)-Easy

1. 题意理解: 判断9宫格的填充内容是否符合9宫格游戏规则。 2. 题目分析: 1)模拟游戏规则,判断横、竖、以及9个子格的内容是否符合规范; 2)遍历所有的情况; 3. 解题代码: cla...

Leetcode: Valid Sudoku

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

LeetCode题解:Valid Sudoku

Valid Sudoku Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku...
  • MagiSu
  • MagiSu
  • 2013-10-26 15:43
  • 2538

LeetCode Valid Sudoku

判断一个给出的数独模型是否符合要求。

leetCode 36.Valid Sudoku(有效的数独) 解题思路和方法

Valid Sudoku Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sud...

Sudoku Solver -- LeetCode

原题链接: http://oj.leetcode.com/problems/sudoku-solver/  这道题的方法就是用在N-Queens中介绍的常见套路。简单地说思路就是循环处理子问题,对于...

LeetCode(36)Valid Sudoku

题目Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules.The Sudoku board could be...
  • fly_yr
  • fly_yr
  • 2015-08-25 20:40
  • 1800

leetcode 36: Valid Sudoku

Total Accepted: 24574 Total Submissions: 90344 Determine if a Sudoku is valid, accordi...
  • xudli
  • xudli
  • 2015-01-29 12:59
  • 2106
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)