原题网址:https://leetcode.com/problems/valid-sudoku/
Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules.
The Sudoku board could be partially filled, where empty cells are filled with the character '.'
.
A partially filled sudoku which is valid.
Note:
A valid Sudoku board (partially filled) is not necessarily solvable. Only the filled cells need to be validated.
方法:按照行、列和格进行哈希统计。
public class Solution {
public boolean isValidSudoku(char[][] board) {
boolean[][] row = new boolean[9][9];
boolean[][] col = new boolean[9][9];
boolean[][][] grid = new boolean[3][3][9];
for(int i=0; i<9; i++) {
for(int j=0; j<9; j++) {
char ch = board[i][j];
if (ch == '.') continue;
if (row[i][ch-'1']) return false; else row[i][ch-'1']=true;
if (col[j][ch-'1']) return false; else col[j][ch-'1']=true;
if (grid[i/3][j/3][ch-'1']) return false; else grid[i/3][j/3][ch-'1']=true;
}
}
return true;
}
}