8皇后以及N皇后算法探究,回溯算法的JAVA实现,递归方案(一)

网友投稿 579 2022-05-28

算法思考,初步思路:

构建二维int或者short型数组,内存中模拟棋盘

chess[r][c]=0表示:r行c列没有皇后,chess[r][c]=1表示:r行c列位置有一个皇后

从第一行第一列开始逐行摆放皇后

依题意每行只能有一个皇后,遂逐行摆放,每行一个皇后即可

摆放后立即调用一个验证函数(传递整个棋盘的数据),验证合理性,安全则摆放下一个,不安全则尝试摆放这一行的下一个位置,直至摆到棋盘边界

当这一行所有位置都无法保证皇后安全时,需要回退到上一行,清除上一行的摆放记录,并且在上一行尝试摆放下一位置的皇后(回溯算法的核心)

当摆放到最后一行,并且调用验证函数确定安全后,累积数自增1,表示有一个解成功算出

8皇后以及N皇后算法探究,回溯算法的JAVA实现,递归方案(一)

验证函数中,需要扫描当前摆放皇后的左上࿰

Java

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Linux中df和du显示不同
下一篇:这次彻底搞懂并发编程的Balking模式
相关文章