Java程序解数独

https://github.com/sophie2805/SolveSoduku

喜欢解数独,不过老爷们解数独似乎更胜一筹,iPad上的最高分一直都是他的。于是,写了一段解数独的代码,不到一秒就解出来了,然后把答案照搬到iPad上,拼的是手速啊。终于扬眉吐气了!

基本思路就是把当前空白单元格的所有可能解罗列出来(基于横,竖,小九宫格罗列可能解,也就是getCandidates(…)方法),填入第一个可能解,往下走,罗列下一个单元格可能解,一直到某个单元格,它没有合法的解了,回溯至上个单元格,尝试它的第二个解(也就是递归方法sodukuSolver(…))。对,就是暴力尝试。用程序来做这种简单重复性的事情,可高效了!!

输入棋盘的时候,为了方便,将棋盘设置为int数组,输入9个数字就代表了棋盘,空白就用0表示,前面的0(也就是棋盘左边开头的0)可以省略。

一个字,爽。两个字,爽快。

    int[] soduku = {
            5004,
            90200,
            900300005,
            4700001,
            307629000,
            0,
            702053060,
            6000000,
            40030
    };
package com.sophies
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值