32 - Valid Sudoku
来源:互联网 发布:深圳网络危机公关 编辑:程序博客网 时间:2024/05/19 10:37
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.
solution:空间换时间,设置多个二维数组分别记录横,纵,块中九个数字的出现次数,若重复出现则报错,反之该数独是valid的。
PS: 还需要判断数是否在1-9之间,若超出该范围也是错误的。
class Solution {public: bool isValidSudoku(vector<vector<char> > &board) { // Note: The Solution object is instantiated only once and is reused by each test case. int si = board[0].size(); if(si <= 0) return false; vector< vector<bool> >rows(si,vector<bool>(si,false)); vector< vector<bool> >cols(si,vector<bool>(si,false)); vector< vector<bool> >blocks(si,vector<bool>(si,false)); for(int row = 0; row < si; row++) { for(int col = 0; col < si; col++) { char temp = board[ row ][ col ]; if(temp == '.') continue; int num = temp - '1'; if( rows[ row ][ num ] || cols[ col ][ num ] || blocks[ col/3 + row - row % 3 ][ num ] ) return false; rows[ row ][ num ] = true; cols[ col ][ num ] = true; blocks[ col/3 + row - row % 3 ][ num ] = true; } } return true; }};
- 32 - Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- Valid Sudoku
- 黑马程序员——浅谈java中的String类
- 8.0
- 64位CPU对于移动设备是没有意义
- Ubuntu 12.04安装Google Chrome
- SQLServer 2005数据库镜像搭建完全手册
- 32 - Valid Sudoku
- asp.net运行机制图
- 黑马程序员——浅谈java中的集合框架
- 18条有趣的微软面试题,自认IQ智商高的朋友来挑战一下吧!
- iOS collectionView使用
- 半年的工作总结
- css js 语法 对照
- 黑马程序员——浅谈java中的泛型
- C#多线程学习(一) 多线程的相关概念