valid sodoku
来源:互联网 发布:南大地理 知乎 编辑:程序博客网 时间:2024/04/29 11:44
class Solution{ public: bool isValidSudoku(vector<vector<char> > &board) { // Note: The Solution object is instantiated only once. vector<vector<bool>> rows(9, vector<bool>(9,false)); vector<vector<bool>> cols(9, vector<bool>(9,false)); vector<vector<bool>> blocks(9, vector<bool>(9,false)); for(int i = 0; i < 9; i++) for(int j = 0; j < 9; j++) { if(board[i][j] == '.')continue; int num = board[i][j] - '1'; if(rows[i][num] || cols[j][num] || blocks[i - i%3 + j/3][num]) return false; rows[i][num] = cols[j][num] = blocks[i - i%3 + j/3][num] = true; } return true; } };
valid sodoku 分析:高度合并,把vector<bool>(9,false )判定是否合法的vector ,作为元素放入另一个vector,这样一次遍历就可以完成
例如:第一行 98155123,扫描到j=2,board[0][2]=1的时候,cols[2][0]检测 vector<bool> (9,false)中是否为TRUE,若为true ,则返回FALSE;
对于9个宫的检测:
第二个宫 i=0,1,2 ;j=3,4,5
blocks[i-i%3+j/3]=blocks[0+1]=blocks[1] 表示第2个宫 [num]表示宫里的数
第四个宫:i=3,4,5 ;j=0,1,2
blocks[3-3%3+j/3]=blocks[3] 索引是3,表示第4个宫
0 0
- valid sodoku
- [Leetcode] Valid Sodoku
- [LeetCode]Valid Sodoku
- <LeetCode><Easy> 36 Valid Sodoku
- Sodoku classical backtracking
- HDU5547-Sodoku 数独 DFS
- @Valid
- Valid Number
- Valid Palindrome
- Valid Parentheses
- Valid Number
- Valid Sudoku
- Valid Palindrome
- Valid Palindrome
- Valid Parentheses
- Valid Sudoku
- Valid Palindrome
- Valid Palindrome
- PYTHON 双引号 单引号 多引号区别
- jqote中调用jQuery方法截取字符串长度
- 第二章 2.3.2节练习
- 站长们应该牢记的三点原则
- ZooKeeper典型应用场景一览
- valid sodoku
- 0基础怎么学习SEO?
- 无锡弱电工程通信智能化工程
- 高级需求分析UML建模设计模式笔记
- Linux下永久修改MAC地址和ifconfig命令总结(转)
- cocos2dx-v3.0-游戏素材获取
- 使用sysbench对Oracle做基准测试(-) 安装篇
- 摄像头屏幕三分之二显示
- 工作日志