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