
									 Problem
								
								
									 Solution
								
								
									 Submissions
								
								
							Valid Sudoku
								Certification: Basic Level
								Accuracy: 50%
								Submissions: 2
								Points: 10
							
							Write a Java program to determine if a 9x9 Sudoku board is valid. Only the filled cells need to be validated according to the following rules:
1. Each row must contain digits 1-9 without repetition.
2. Each column must contain digits 1-9 without repetition.
3. Each of the nine 3x3 sub-boxes of the grid must contain digits 1-9 without repetition.
Note:
- A Sudoku board (partially filled) could be valid but is not necessarily solvable.
- Only the filled cells need to be validated according to the rules mentioned.
- The Sudoku board is represented as a 9x9 char array where '.' represents empty cells.
Example 1
- Input: board = [
["5","3",".",".","7",".",".",".","."],
["6",".",".","1","9","5",".",".","."],
[".","9","8",".",".",".",".","6","."],
["8",".",".",".","6",".",".",".","3"],
["4",".",".","8",".","3",".",".","1"],
["7",".",".",".","2",".",".",".","6"],
[".","6",".",".",".",".","2","8","."],
[".",".",".","4","1","9",".",".","5"],
[".",".",".",".","8",".",".","7","9"]
] - Output: true
 - Explanation: 
- Step 1: Create data structures to track digits in each row, column, and 3x3 sub-box.
 - Step 2: Iterate through each cell in the 9x9 Sudoku board.
 - Step 3: For each filled cell (non-'.'), check if the digit already exists in the current row.
 - Step 4: Check if the digit already exists in the current column.
 - Step 5: Check if the digit already exists in the current 3x3 sub-box.
 - Step 6: No duplicates are found in any row, column, or sub-box, so the board is valid.
 
 
Example 2
- Input: board = [
["8","3",".",".","7",".",".",".","."],
["6",".",".","1","9","5",".",".","."],
[".","9","8",".",".",".",".","6","."],
["8",".",".",".","6",".",".",".","3"],
["4",".",".","8",".","3",".",".","1"],
["7",".",".",".","2",".",".",".","6"],
[".","6",".",".",".",".","2","8","."],
[".",".",".","4","1","9",".",".","5"],
[".",".",".",".","8",".",".","7","9"]
] - Output: false
 - Explanation: 
- Step 1: Create data structures to track digits in each row, column, and 3x3 sub-box.
 - Step 2: Start iterating through the Sudoku board.
 - Step 3: Notice that the first cell of the first row contains '8'.
 - Step 4: Later, in the first cell of the fourth row, we find another '8'.
 - Step 5: Since the digit '8' appears twice in the first column, this violates rule #2.
 - Step 6: Return false as the board is invalid.
 
 
Constraints
- board.length == 9
 - board[i].length == 9
 - board[i][j] is a digit 1-9 or '.'
 - Time Complexity: O(1) - since the board size is fixed at 9x9
 - Space Complexity: O(1) - using fixed-size data structures
 
Editorial
									
												
My Submissions
										All Solutions
									| Lang | Status | Date | Code | 
|---|---|---|---|
| You do not have any submissions for this problem. | |||
| User | Lang | Status | Date | Code | 
|---|---|---|---|---|
| No submissions found. | ||||
Solution Hints
- Use three separate sets of data structures to track digits in each row, column, and 3x3 sub-box
 - You can use boolean arrays or HashSets to track seen digits
 - For the 3x3 sub-boxes, you need to map each cell (i,j) to its corresponding sub-box index
 - Skip empty cells (represented by '.')
 - Return false as soon as you encounter a violation of any rule