![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 66
来自大山深处的Doge_
这个作者很懒,什么都没留下…
展开
-
Java 实现连连看算法
连连看是个经典的小游戏,规则是:两图案相同的方块在2折以内的线连接下可以消除。里面的算法还是非常有趣,今天来研究一下。初始化棋盘假设有一个8*8的棋盘,我们要将其扩充至10*10,为什么?因为这样外围的连接就可以不用越界了。消除基本条件判断是否具备消除的基本条件有 3 个两个方块不能是同一个坐标两个方块必须是同种类型(图案)两个方块中不能有任何一个已经消除过的(消除过后的值用 mark 表示)// 判断是否具备消除的基本条件:两个方块不能是同一个坐标;两个方块必须是同种类型;两个方块中原创 2021-06-03 11:30:42 · 1648 阅读 · 7 评论 -
Java 回溯法解数独
题干:输入一个9*9二维数组表示数独,已经填入的数字用1-9表示,待填入的数字用0表示,试写一个算法解出数独并输出。思路:容易想到回溯法,即以人的思维的解数独,遍历数组,如果是空白就从1-9依次选一个数判断本行、列、3*3宫格内是否有重复,如果有就撤销当前选择,进行下一个数字的选择;如果该数暂时满足条件,那么进行下一个格子的选择,递归的终止条件是遍历完所有格子。代码分段演示输入数组Scanner sc = new Scanner(System.in);int[][] board = new i原创 2021-05-31 13:45:18 · 372 阅读 · 0 评论 -
回溯法解n皇后问题(Java 实现)
回溯法解n皇后问题n皇后问题描述是:将n个皇后放在n*n的棋盘上,使得任意两个皇后不在同一行,同一列和同一斜线上,找出解的总数,并输出每个解。(.表示不放皇后,Q表示放置皇后)我的思路:根据题意可以明显得出,每行/每列有且仅有一个皇后,因此用了point数组的索引表示每个皇后的x坐标,并对y坐标进行全排列(x和y均初始化为0-n),对每个排列进行判断是否这个解不在同一斜线即可Java 代码:package 回溯;import java.util.*;/*42892 *//原创 2020-10-27 12:56:57 · 1182 阅读 · 0 评论