leetcode37(解数独:回溯法)

该博客介绍如何利用回溯法解决数独问题,遵循数独的规则,确保每行、每列和每个3x3宫格中数字1-9仅出现一次。题解中提到通过维护三个数组来避免无效回溯,提高解题效率。
摘要由CSDN通过智能技术生成

编写一个程序,通过已填充的空格来解决数独问题。

一个数独的解法需遵循如下规则:

数字 1-9 在每一行只能出现一次。
数字 1-9 在每一列只能出现一次。
数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。
空白格用 ‘.’ 表示。

题解:利用回溯法解数独,枚举所有可能的情况,找出数独的解,为了减少回溯的情况,我们需要维护三个数组分别记录每一横排已经出现的数,每一竖排已经出现的数,和每个方格中已经出现的数,这样可以提前排除掉不能再选择的数。

//回溯法解数独
class Solution {
   
    /**
     * 二维数组{@code row}、{@code column},三维数组{@code grid}用于记录某行、某列、某个方格中已填入的数字
     * {@code fill}用于记录待被填充的空格位置
     */
    boolean[][]row=new boolean[9][9];
    boolean[][]column=new boolean[9][9];
    boolean[][][]grid=new boolean[3][3][9];
    List<int[]>fill
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值