Description
Write a program to solve a Sudoku puzzle by filling the empty cells.
A sudoku solution must satisfy all of the following rules:
- Each of the digits 1-9 must occur exactly once in each row.
- Each of the digits 1-9 must occur exactly once in each column.
- Each of the the digits 1-9 must occur exactly once in each of the 9 3x3 sub-boxes of the grid.
Empty cells are indicated by the character ‘.’.
![]()
A sudoku puzzle…
![]()
…and its solution numbers marked in red.
Note:
- The given board contain only digits 1-9 and the character ‘.’.
- You may assume that the given Sudoku puzzle will have a single unique solution.
- The given board size is always 9x9.
Difficulty: Hard
Code:
1 | class Solution { |
题意
将数独中的空白按规则正确填充,假设有且仅有唯一解。
Solution 1
对每个空格子都带入1-9,每带入一个数字判定其是否合法,若合法则将其放入棋盘并递归调用。
若其递归调用都仍然合法,说明棋盘已经填充正确,直接返回;若不合法,说明这个数字不适合,将棋盘此位置重新放入.。
1 | class Solution { |
时间复杂度: O()。
空间复杂度: O()。