Leetcode #36. Valid Sudoku 数独游戏验证 解题报告
来源:互联网 发布:微信做淘宝客 编辑:程序博客网 时间:2024/06/05 00:42
1 解题思想
九宫格验证,验证这个数独游戏的棋盘是否合法,这题做的不是求解答案,只是看给定的棋盘是否合法!
做法没什么特别的,分块,行,列都要验证,即一个分组单位里1-9有且只能出现一次
注意空间优化
2 原题
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.
3 AC解
public class Solution { static int position[]=new int[]{2,4,8,16,32,64,128,256,512}; /** * 分别判断行 列 和 格子内的就可以了~~~ * 这里我使用的位运算来降低内存。。都是2的n次,那么对应的位置上直接使用位运算就能判断了 * */ public boolean isValidSudoku(char[][] board) { int col[]=new int[9]; int row[]=new int[9]; int zone[]=new int[9]; int i,j,mask,qid; for(i=0;i<9;i++){ for(j=0;j<9;j++){ if(board[i][j]=='.') continue; mask=position[board[i][j]-'1']; qid=(i/3)*3+j/3; if( (col[j] | mask) == col[j] || (row[i] | mask) == row[i] ||(zone[qid] | mask) == zone[qid]) return false; col[j]=col[j]|mask; row[i]=row[i]|mask; zone[qid]=zone[qid]|mask; } } return true; }}
0 0
- Leetcode #36. Valid Sudoku 数独游戏验证 解题报告
- LeetCode Valid Sudoku数独有效性验证
- LeetCode 36. Valid Sudoku(数独游戏)
- LeetCode:Valid Sudoku,Sudoku Solver(数独游戏)
- leetcode 36. Valid Sudoku 数独有效
- Valid Sudoku:数独验证
- leetcode 37. Sudoku Solver 36. Valid Sudoku 数独问题
- [leetcode] 36. Valid Sudoku 解题报告
- [Leetcode] 36. Valid Sudoku 解题报告
- [leetcode]36. Valid Sudoku@Java解题报告
- leetCode 36.Valid Sudoku(有效的数独) 解题思路和方法
- [LeetCode] Valid Sudoku 解题报告
- leetcode 36. Valid Sudoku-有效数独|哈希表
- LeetCode-36. Valid Sudoku (JAVA)(有效数独)
- LeetCode:36. Valid Sudoku,数独是否有效 :
- Leetcode:36.Valid Sudoku 初始化数独数组是否合法判断
- [LeetCode] [数独问题] Valid Sudoku
- (LeetCode)Valid Sudoku --- 合法数独
- EasyUI菜单
- 快速排序
- 实现弹出选项
- oracle密码文件
- iOS搜索框的实现
- Leetcode #36. Valid Sudoku 数独游戏验证 解题报告
- SATA SAS SSD 硬盘介绍和评测
- 2016第七届蓝桥杯C/C++ B组省赛题解 A题
- redis注册成window服务
- 滤波电容、去耦电容、旁路电容作用及区别
- k-Maximum Subsequence Sum
- leetcode 27. Remove Element
- 平衡的多路查找树
- Linux学习第一天