leetcode 36
36. 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.
判断数独是否有效,即每一行数不能重复,每一列数不能重复,每个9宫格数不能重复。
思路比较简单,但在实现的过程中遇到一些麻烦。刚开始用最简单的比较法来判断数是否重复,结果运行时间超时。
后采用map容器,大大减少了判断重复的时间。
代码如下:
 class Solution {
 public:
     bool isValidSudoku(vector<vector<char>>& board) {
         int i,j,k,l,map[];
         if(board.size()!= || board[].size()!=)
         {
             return false;
         }
         for(i=;i<;i++){
             memset(map,,sizeof(map));
             for(j=;j<;j++){
                 if(board[i][j]=='.')
                 {
                    continue;
                 }
                 if(board[i][j]<'' || board[i][j]>'')
                 {
                     return false;
                 }
                 int num=board[i][j]-'';
                 if(map[num])
                 {
                     return false;
                 }
                 map[num]=;
             }
         }
         for(j=;j<;j++){
             memset(map,,sizeof(map));
             for(i=;i<;i++){
                 if(board[i][j]=='.')
                 {
                     continue;
                 }
                 int num=board[i][j]-'';
                 if(map[num])
                 {
                     return false;
                 }
                 map[num]=;
             }
         }
         for(i=;i<;i+=){
             for(j=;j<;j+=){
                 memset(map,,sizeof(map));
                 for(k=i;k<i+;k++){
                     for(l=j;l<j+;l++){
                         if(board[k][l]=='.')
                         {
                             continue;
                         }
                         int num=board[k][l]-'';
                         if(map[num])
                         {
                             return false;
                         }
                         map[num]=;
                     }
                 }
             }
         }
         return true;
     }
 };
leetcode 36的更多相关文章
- LeetCode:36. Valid Sudoku,数独是否有效
		
LeetCode:36. Valid Sudoku,数独是否有效 : 题目: LeetCode:36. Valid Sudoku 描述: Determine if a Sudoku is valid, ...
 - 前端与算法 leetcode 36. 有效的数独
		
目录 # 前端与算法 leetcode 36. 有效的数独 题目描述 概要 提示 解析 算法 传入[['5', '3', '.', '.', '7', '.', '.', '.', '.'],['6' ...
 - leetcode 36 有效的数独  哈希表 unordered_set  unordersd_map 保存状态 leetcode 37 解数独
		
leetcode 36 感觉就是遍历. 保存好状态,就是各行各列还有各分区divide的情况 用数组做. 空间小时间大 class Solution { public: bool isValidSud ...
 - [LeetCode] 36. Valid Sudoku 验证数独
		
Determine if a 9x9 Sudoku board is valid. Only the filled cells need to be validated according to th ...
 - Java实现 LeetCode 36 有效的数独
		
36. 有效的数独 判断一个 9x9 的数独是否有效.只需要根据以下规则,验证已经填入的数字是否有效即可. 数字 1-9 在每一行只能出现一次. 数字 1-9 在每一列只能出现一次. 数字 1-9 在 ...
 - leetcode@ [36/37] Valid Sudoku / Sudoku Solver
		
https://leetcode.com/problems/valid-sudoku/ Determine if a Sudoku is valid, according to: Sudoku Puz ...
 - LeetCode 36 Valid Sudoku(合法的数独)
		
题目链接: https://leetcode.com/problems/valid-sudoku/?tab=Description 给出一个二维数组,数组大小为数独的大小,即9*9 其中,未填入 ...
 - [leetcode] 36. 有效的数独(Java)
		
没啥好说的,直接上就行 36. 有效的数独 class Solution { public boolean isValidSudoku(char[][] board) { Map<Charact ...
 - LeetCode 36 Valid Sudoku
		
Problem: Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board ...
 
随机推荐
- 【JavaScript】创建命名空间,Class,LOG
			
JxUnderscore(function (J, _, root) { var isWindow, deepObject, Namespace, Class, LOG; /** * 一个对象是否为w ...
 - Mac下lombok无法安装到eclipse mars
			
eclipse升级到mars之后 , 在mac下已经不再是文件夹中有很多文件的eclipse了 , 只有一个单独的app文件.用原来的方式运行lombok再选eclipse.app已经不行了. 自己鼓 ...
 - df、du、fdisk:Linux磁盘管理三板斧的使用心得(转载)
			
From:http://os.51cto.com/art/201012/240726_all.htm 作者介绍:李洋(博客),博士毕业于中科院计算所.10多年来一直从事计算机网络信息安全研发工作,曾主 ...
 - C++学习48  对ASCII文件的读写操作
			
如果文件的每一个字节中均以ASCII代码形式存放数据,即一个字节存放一个字符,这个文件就是ASCII文件(或称字符文件).程序可以从ASCII文件中读入若干个字符,也可以向它输出一些字符. 对ASCI ...
 - [ActionScript 3.0] AS3中Loader无法彻底卸载
			
我测试发现,实例化的Loader无法彻底卸载,同行有没有办法,求赐教! import flash.display.Loader; import flash.net.URLRequest; import ...
 - 去掉 input type="number" 右边图标
			
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
 - golang 移动应用例子 example/basic 源码框架分析
			
条件编译 我们在源码中可以看到2个文件: main.go 和 main_x.go 这两个包名都是 package main , 都有 main 函数. 不会冲突么? 答案是不会的, main_x.go ...
 - jQuery.loadTemplate客户端模板
			
jQuery.Template虽然用起来没有Mustache简洁和方便,还是学习了解一下,做个笔记. 模板可以定义在页面script标签,如下 <script type="text/h ...
 - IOS中类似的。9.png图片
			
图形用户界面中的图形有两种实现方式,一种是用代码画出来,比如Quartz 2D技术,狠一点有OpenGL ES,另一种则是使用图片. 代码画的方式比较耗费程序员脑力,CPU或GPU; 图片则耗费磁盘空 ...
 - Antlr学习
			
参加工作之后,接触DSL领域语言,了解了编译原理. 比如Hibernate.Hive等的HQL都是基于antlr编写的 所以,如果想自己实现一套DSL语言,我们可以基于antlr做词法分析与语法分析 ...