/*
给一个不完整的数独,'.'代表为空判断数独是否合法
*/
public class Solution {
public boolean check1(char[][] board){
for(int i = 0 ; i < 9 ; i ++){
int[] rows = new int[10];
int[] col = new int[10];
int[] cube = new int[10];
for(int j = 0 ; j <9 ; j++){
if(board[i][j]!='.'){//检查每行
if(rows[board[i][j]-'0'] == 1) return false;
else rows[board[i][j]-'0'] = 1;
}
if(board[j][i]!='.'){//检查每列
if(col[board[j][i]-'0'] == 1) return false;
else col[board[j][i]-'0'] = 1;
}
int n = (i/3)*3;
int m = (i%3)*3;
if(board[n+j/3][m+j%3]!='.'){//检查每个小正方形
if(cube[board[n+j/3][m+j%3]-'0'] == 1) return false;
else cube[board[n+j/3][m+j%3]-'0'] = 1;
}
}
}
return true;
}
public boolean isValidSudoku(char[][] board) {
return check1(board);
}
}