根据坐标找到对应的行,列,块即可。
设置三个标志矩阵。
public class Solution {
public boolean isValidSudoku(char[][] board) {int[][] rowflag=new int[9][9];
int[][] colflag=new int[9][9];
int[][] chuflag=new int[9][9];
int i,j,tmp;
for(i=0;i<9;i++)
for(j=0;j<9;j++)
{
rowflag[i][j]=0;
colflag[i][j]=0;
chuflag[i][j]=0;
}
for(i=0;i<9;i++)
for(j=0;j<9;j++)
{
if(board[i][j]=='.')
continue;
tmp=board[i][j]-'0'-1;
if(rowflag[i][tmp]!=0 || colflag[j][tmp]!=0 || chuflag[i/3*3+j/3][tmp]!=0)
return false;
else
{
rowflag[i][tmp]=1;
colflag[j][tmp]=1;
chuflag[i/3*3+j/3][tmp]=1;
}
}
return true;
}
}