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.
Difficulty: Easy
public class Solution {
public boolean isValidSudoku(char[][] board) {
for(int i = 0; i < 3; i++){
for(int j = 0; j < 3; j++){
int[] visited = new int[9];
for(int row = i*3; row < i*3 + 3; row++){
for(int col = j*3; col < j*3 + 3; col++){
if(board[row][col] != '.'){
visited[(board[row][col]) - '1']++;
if(visited[(board[row][col]) - '1'] > 1)
return false;
}
}
}
}
}
for(int i = 0; i < 9; i++){
int[] visited_row = new int[9];
int[] visited_col = new int[9];
for(int j = 0; j < 9; j++){
if(board[i][j] != '.'){
visited_row[(board[i][j]) - '1']++;
if(visited_row[(board[i][j]) - '1'] > 1)
return false;
}
if(board[j][i] != '.'){
visited_col[(board[j][i]) - '1']++;
if(visited_col[(board[j][i]) - '1'] > 1)
return false;
}
}
}
return true;
}
}