leetcode36.有效的数独
由于固定9*9网格,数字由1-9,所以采用数组代替哈希表
遍历网格得到格子中的数字,可以映射到行、列、九宫格中该数字是否使用过,如果使用过那么棋盘不合法,没有使用过则将当前映射到的位置置为true
class Solution {
public boolean isValidSudoku(char[][] board) {
boolean[][] row=new boolean[9][9];
boolean[][] col=new boolean[9][9];
boolean[][] grid=new boolean[9][9];
for(int i=0;i<9;i++)
for(int j=0;j<9;j++)
if(board[i][j]!='.'){
int index=board[i][j]-'1';
if(row[i][index]||col[j][index]||grid[i/3*3+j/3][index])
return false;
else{
row[i][index]=true;
col[j][index]=true;
grid[i/3*3+j/3][index]=true;
}
}
return true;
}
}