class Solution {
public boolean isValidSudoku(char[][] board) {
HashSet<Integer> [] rows = new HashSet[9];
HashSet<Integer> [] cols = new HashSet[9];
HashSet<Integer> [] one = new HashSet[9];
for (int n = 0; n < 9; n++) {
rows[n] = new HashSet<Integer>();
cols[n] = new HashSet<Integer>();
one[n] = new HashSet<Integer>();
}
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++) {
char val = board[i][j];
if (val != '.') {
int v = (int)val;
int xy = (i / 3) * 3 + j / 3;
if ((!rows[i].add(v)) || !cols[j].add(v) || !one[xy].add(v)) {
return false;
}
}
}
}
return true;
}
}
Runtime: 2 ms, faster than 84.31% of Java online submissions for Valid Sudoku.
Memory Usage: 38.8 MB, less than 88.24% of Java online submissions for Valid Sudoku.
오랜만에 꽤 쉬웠던 문제..^^..