36. Valid Sudoku
数独判断。。
楞做。。
Time: O(k²) k = length of board (9)
space: O(k)
public class Solution {
public boolean isValidSudoku(char[][] board) {
if (board.length == 0) return true;
Set<Character> set = new HashSet<>();
for (int i = 0; i < board.length; i++) {
for (int j = 0; j < board[0].length; j++) {
if (board[i][j] != '.') {
if (!set.add(board[i][j])) return false;
}
}
set.clear();
}
for (int i = 0; i < board[0].length; i++) {
for (int j = 0; j < board.length; j++) {
if (board[j][i] != '.') {
if (!set.add(board[j][i])) return false;
}
}
set.clear();
}
for (int i = 0; i < board.length; i += 3) {
for (int j = 0; j < board[0].length; j += 3) {
for (int m = i; m < i + 3; m++) {
for (int n = j; n < j + 3; n++) {
if (board[m][n] != '.') {
if (!set.add(board[m][n])) return false;
}
}
}
set.clear();
}
}
return true;
}
}

浙公网安备 33010602011771号