[leetcode]Valid Sudoku
来源:互联网 发布:联通宽带网络怎么样 编辑:程序博客网 时间:2024/06/05 10:52
class Solution {public: bool isValidSudoku(vector<vector<char> > &board) { int row,col,block; char ch; vector<int> flags(9,0); //rows for(row=0;row<9;row++){ flags.assign(9,0); for(col=0;col<9;col++){ ch=board[row][col]; if(ch!='.'){ if(flags[ch-'1']>0){ return false; }else{ flags[ch-'1']++; } } } } //cols for(col=0;col<9;col++){ flags.assign(9,0); for(row=0;row<9;row++){ ch=board[row][col]; if(ch!='.'){ if(flags[ch-'1']>0){ return false; }else{ flags[ch-'1']++; } } } } //blocks for(block=0;block<9;block++){ int srow=(block/3)*3; int scol=(block%3)*3; flags.assign(9,0); for(row=srow;row<srow+3;row++){ for(col=scol;col<scol+3;col++){ ch=board[row][col]; if(ch!='.'){ if(flags[ch-'1']>0){ return false; }else{ flags[ch-'1']++; } } } } } return true; }};
class Solution {public: bool checkValid(int vec[],int val){ if(vec[val]==1){ return false; } vec[val]=1; return true; } bool isValidSudoku(vector<vector<char>>& board) { int rowValid[10]={0}; int colValid[9][10]={0}; int subBoardValid[9][10]={0}; for(int i=0;i<9;++i){ memset(rowValid,0,sizeof(rowValid)); for(int j=0;j<9;++j){ if(board[i][j]!='.'){ if(!checkValid(rowValid,board[i][j]-'0')||!checkValid(colValid[j],board[i][j]-'0')||!checkValid(subBoardValid[i/3*3+j/3],board[i][j]-'0')){ return false; } } } } return true; }};
优化空间
class Solution {public: bool checkValid(int vec[],int val){ if(val<0){//字符'.' return true; } if(vec[val]==1){ return false;//already exist } vec[val]=1; return true; } bool isValidSudoku(vector<vector<char>>& board) { int rowValid[10]={0}; int colValid[10]={0}; int subBoardValid[10]={0}; for(int i=0;i<9;++i){ memset(rowValid,0,sizeof(rowValid)); memset(colValid,0,sizeof(colValid)); memset(subBoardValid,0,sizeof(subBoardValid)); for(int j=0;j<9;++j){ //if(board[i][j]!='.'){ if(!checkValid(rowValid,board[i][j]-'0')||!checkValid(colValid,board[j][i]-'0')||!checkValid(subBoardValid,board[3*(i/3)+j/3][3*(i%3)+j%3]-'0')){ return false; } //} } } return true; }};
0 0
- 【LeetCode】Valid Sudoku && Sudoku Solver
- [Leetcode]Sudoku Solver&&Valid Sudoku
- leetcode Valid Sudoku & Sudoku Solver
- LeetCode : Valid Sudoku
- [LeetCode]Valid Sudoku
- [leetcode] Valid Sudoku
- LeetCode-Valid Sudoku
- LeetCode Valid Sudoku
- LeetCode - Valid Sudoku
- LeetCode:Valid Sudoku
- leetcode-036:Valid Sudoku
- Leetcode: Valid Sudoku
- LeetCode题解:Valid Sudoku
- 【LeetCode】 Valid Sudoku
- Leetcode Valid Sudoku
- LeetCode | Valid Sudoku
- LeetCode Valid Sudoku
- [Leetcode] Valid Sudoku (Java)
- acm参赛笔记
- WINDOWS7环境下android studio、NDK配置补充
- sicily 1206. Stacking Cylinders
- db
- 升级MAC OS X自带的SVN客户端
- [leetcode]Valid Sudoku
- FastDFS的配置、部署与API使用解读(4)FastDFS配置详解之Client配置
- 最新Android studio
- Linux下打开java控制面板、设置安全等级
- Number of Digit One
- jQuery Mobile在PC上调试时,chrome中无法显示or加载
- 文章标题
- linux中fork()函数详解(实例讲解)
- linux搭建SVN