#+ANKI_DECK: study_deck_02 * TODO 0036. Valid Sudoku :medium: :PROPERTIES: :NEETCODE: [[file:../../roadmap.org::*0036. Valid Sudoku][0036. Valid Sudoku]] :END: Determine if a ~9 x 9~ Sudoku board is valid. Only the filled cells need to be validated *according to the following rules*: - Each row must contain the digits ~1-9~ without repetition. - Each column must contain the digits ~1-9~ without repetition. - Each of the nine ~3 x 3~ sub-boxes of the grid must contain the 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 mentioned rules. *Example 1:* #+begin_src 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 #+end_src *Example 2:* #+begin_src 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: Same as Example 1, except with the 5 in the top left corner being modified to 8. Since there are two 8's in the top left 3x3 sub-box, it is invalid. #+end_src *Constraints:* - ~board.length == 9~ - ~board[i].length == 9~ - ~board[i][j]~ is a digit ~1-9~ or ~'.'~. ** TODO Approach Write your approach here. ** TODO Python #+begin_src python class Solution: def isValidSudoku(self, board: List[List[str]]) -> bool: #+end_src ** TODO C++ #+begin_src cpp class Solution { public: bool isValidSudoku(vector>& board) { } }; #+end_src