DFS经典问题 ——数独

本题是大家学习DFS路上必不可少的一道题目

题目

本题链接P1784 数独 - 洛谷

讲解算法原理

枚举策略:
「⼀个格⼦⼀个格⼦」往⾥⾯填数。
从第⼀⾏的第⼀个格⼦开始,填上⼀个「没有冲突」的数,然后「递归」到下⼀个格⼦;
当某⼀⾏填满之后,递归到「下⼀⾏的起始位置」继续填数。
可以创建三个数组,⽤来帮助判断填上某⼀个数之后,是否会发⽣冲突。对于 ⽅格,我们可以
给每⼀个格⼦编上号,快读定位。
其实也就是要确保填入的数字在每一行、每一列、每个3*3格子内是没有出现过的数字

代码实现

完整代码可以参考本人gitee仓库: DFS/数独 · 陈佳栋/o.O.c - Gitee.com
以下是部分代码讲解
这段代码是输入数字时候标记不为零的位置
这段代码是DFS的主要实现过程:其中只要出现非法的数字填入就return返回。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值