Check board configuration is valid or not – Valid Sudoku

Check Sudoku board configuration is valid or not – Medium Level

You are given a a 9 x 9 Sudoku board board. A Sudoku board is valid if the following rules are followed:

Each row must contain the digits 1-9 without duplicates.
Each column must contain the digits 1-9 without duplicates.
Each of the nine 3 x 3 sub-boxes of the grid must contain the digits 1-9 without duplicates.
Return true if the Sudoku board is valid, otherwise return false

Note: A board does not need to be full or be solvable to be valid.

Valid Sudoku to check

Examples of Valid Sudoku

Valid Sudoku Check New

Explanation: There are two 1’s in the top-left 3×3 sub-box.

Constraints:

  • board.length == 9
  • board[i].length == 9
  • board[i][j] is a digit 1-9 or ‘.’.

Check Sudoku board configuration is valid or not Solution

Recommendation for Time and Space Complexity –You should aim for a solution as good or better than O(n^2) time and O(n^2) space, where n is the number of rows in the square grid.

Hints for solving problems

Hint 1 :

Which data structure would you prefer to use for checking duplicates?

Hint 2 :

You can use a hash set for every row and column to check duplicates. But how can you efficiently check for the squares?

Hint 3 :

We can find the index of each square by the equation (row / 3) * 3 + (col / 3). Then we use hash set for O(1) lookups while inserting the number into its row, column and square it belongs to. We use separate hash maps for rows, columns, and squares.

There are mainly 3 approach to solve this problem-

  1. Brute Force Method
  2. Hash Set(One Pass) Method
  3. Bitmask Method

1. Brute Force Method

This method check each row, column, and 3×3 sub-box independently for duplicates by iterating through the board multiple times. Simple but slow for larger grids.

  • Time complexity: O(n^2)
  • Space complexity: O(n^2)

Code

2. Hash Set Method(One Pass)

This method use a hash set to track the values in rows, columns, and sub-boxes as you iterate through the board in one pass. Efficient and easy to implement.

  • Time complexity: O(n^2)
  • Space complexity: O(n^2)

Code

3. Bitmask Method

This method represent rows, columns, and sub-boxes using bitmasks to efficiently track and validate numbers, reducing space usage and improving performance.

  • Time complexity: O(n^2)
  • Space complexity: O(n)

Code

More Articles