translation
数独板被部分填充,空格部分用‘.‘来填充。一个部分填充的数组是否有效只需要看其填充的部分即可。
Original
Code
The word was inscribed for a while, wrong ... Because the input is too lazy to make, directly read someone else's writing ...
classSolution { Public:inta[9];BOOLIsvalidsudoku ( vector<vector<char>>& Board) {memsetA0,sizeof(a)); for(intI=0, j=0, row=0, col=0;i<9; ++j,j==9? ++i,j=0, row=col=0:0) {if(board[i][j]!='. ') {if((1<<board[i][j]- -) & Row)return false;Elserow|=1<<board[i][j]- -;if((1<<board[i][j]- -) & a[i/3*3+j/3])return false;Elsea[i/3*3+j/3]|=1<<board[i][j]- -; }if(board[j][i]!='. ')if((1<<board[j][i]- -) & Col)return false;Elsecol|=1<<board[j][i]- -; }return true; }};
classSolution { Public:BOOLIsvalidsudoku ( vector<vector<char>>& Board) {intI, J, C;introw[9][9], col[9][9], block[3][3][9];memset(Row,0,sizeof(row));memset(Col,0,sizeof(col));memset(Block,0,sizeof(block)); for(i =0; I <9; i++) { for(j =0; J <9; J + +) {if(Board[i][j]! ='. ') {c = board[i][j]-' 1 ';if(Row[i][c] | | col[j][c] | | block[i/3][j/3][C])return false;Else{Row[i][c] + +; COL[J][C] + +; Block[i/3][j/3][c]++; } } } }return true; }};
Leetcode Valid Sudoku