小编我最近沉迷于于LeetCode刷题,摸索各种算法,学习python,java,不出意外之后会出一个算法专题,我会找各种经典题,尽量多方法写出结果,详细写出思路,如果有什么疏漏的地方,还请大家不吝赐教,谢谢。
LeetCode第51和52题都是有关n皇后问题
51要求列出解决方案,如下图
52要求列出解决方案的个数
51.列出解决方案
*******************************
*法二:Python 回溯 一维数组 *
*******************************
使用一维数组有什么好处?
好处1.索引为行,数值为列。
好处2.可以保证每行只有一个,所以判断位置是否摆放合理只需要判断两个条件(列,对角线)即可。
以4皇后为例 输入4,输出为2
结果为:【1,3,0,2】 【2,0,3,1】
【1,3,0,2】意思是:
4个皇后分别在第0行第1列;第1行第3列;第2行第0列;第3行第2列;
两种情况如图所示
完整代码如下:
****************************
*法二:Java 回溯 二维数组 *
****************************
完整代码如下:
52.列出解决方案的个数
***********************
*Python 递归 一维数组*
**********************
完整代码如下:
参考链接:
https://leetcode.cn/problems/n-queens/solution/nhuang-hou-wen-ti-xiang-xi-zhu-shi-hui-s-yb3o/
https://leetcode.cn/problems/n-queens/solution/nhuang-hou-jing-dian-hui-su-suan-fa-tu-wen-xiang-j/
原文始发于微信公众号(电子取证及可信应用协创中心):算法专题(一)n皇后问题
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论