解数独。编写一个程序,通过已填充的空格来解决数独问题。
一个数独的解法需遵循如下规则:
- 数字
1-9
在每一行只能出现一次。 - 数字
1-9
在每一列只能出现一次。 - 数字
1-9
在每一个以粗实线分隔的3x3
宫内只能出现一次。
空白格用 '.'
表示。
一个数独。
答案被标成红色。
Note:
- 给定的数独序列只包含数字
1-9
和字符'.'
。 - 你可以假设给定的数独只有唯一解。
- 给定数独永远是
9x9
形式的。
思路一
回溯法,每次从头开始遍历。
1 |
|
思路二
思路一中的回溯法每次都从头遍历,可以优化成每次从下一个有效的位置遍历。
1 |
|
思路三
另一种回溯写法,每次从下一个有效的位置遍历。
1 |
|