public class Solution {
public boolean isValidSudoku(char[][] board) {
// 9 * 9 board
// Row
for(int i = 0; i < 9; i++) {
boolean[] used = new boolean[9];
for(int j = 0; j < 9; j++) {
char c = board[i][j];
if(c != '.') {
if(used[c - '1'] == true) {
return false;
}
used[c - '1'] = true;
}
}
}
// Column
for(int i = 0; i < 9; i++) {
boolean[] used = new boolean[9];
for(int j = 0; j < 9; j++) {
char c = board[j][i];
if(c != '.') {
if(used[c - '1'] == true) {
return false;
}
used[c - '1'] = true;
}
}
}
// Cell
for(int i = 0; i < 9; i += 3) {
for(int j = 0; j < 9; j += 3) {
boolean[] used = new boolean[9];
for(int k = 0; k < 3; k++) {
for(int l = 0; l < 3; l++) {
char c = board[i + k][j + l];
if(c != '.') {
if(used[c - '1'] == true) {
return false;
}
used[c - '1'] = true;
}
}
}
}
}
return true;
}
}
Time: O(n^2)
Space: O(n)