最后那个block search值得想想
此外比hashset or map简单
ref
http://blog.csdn.net/linhuanmars/article/details/20748171
public class Solution {
public boolean isValidSudoku(char[][] board) {
//http://blog.csdn.net/linhuanmars/article/details/20748171
if(board==null || board.length==0) return false;
for(int i=0; i<9; i++){
boolean [] row = new boolean[9];
for(int j=0; j<9; j++){
if(board[i][j]!='.'){
if(row[(int) (board[i][j]-'1')])
return false;
row[(int) (board[i][j]-'1')] = true;
}
}
}
for(int j=0; j<9; j++){
boolean[] col = new boolean[9];
for(int i=0; i<9; i++){
if(board[i][j]!='.'){
if(col[(int) (board[i][j]-'1')])
return false;
col[(int) (board[i][j]-'1')] = true;
}
}
}
for(int b = 0; b<9; b++){
boolean[] blk = new boolean[9];
for(int i=b/3*3; i<b/3*3+3; i++){
for(int j=b%3*3; j<b%3*3+3; j++){
if(board[i][j]!='.'){
if(blk[(int) (board[i][j]-'1')])
return false;
blk[(int) (board[i][j]-'1')] = true;
}
}
}
}
return true;
}
}