n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。示例 1:输入:n = 4
输出:[[".Q..","...Q","Q...","..Q."],["..Q.","Q...","...Q",".Q.."]]
解释:如上图所示,4 皇后问题存在两个不同的解法。
示例 2:输入:n = 1
输出:[["Q"]]链接:https://leetcode-cn.com/problems/n-queensclass Solution:def solveNQueens(self, n: int) -> List[List[str]]:def getNQueens(queen_row:int):if queen_row == n:ans = []for i in range(n):row[queen[i]] = "Q"ans.append("".join(row))row[queen[i]] = '.'target.append(ans)for i in range(n):if i in col or queen_row - i in diagonal1 or queen_row + i in diagonal2:continuediagonal1.add(queen_row - i)diagonal2.add(queen_row + i)col.add(i)queen[queen_row] = igetNQueens(queen_row + 1)diagonal1.remove(queen_row - i)diagonal2.remove(queen_row + i)col.remove(i)queen[queen_row] = -1target = []diagonal1 = set()diagonal2 = set()col = set()queen = [-1] * nrow = ["."] * ngetNQueens(0)return target

Leetcode 51. N 皇后 (每日一题 20211008)相关推荐

  1. 日拱一卒——LeetCode 51.N皇后

    ​ 大家好呀,今天是今天为大家带来的LeetCode的题目是LeetCode 51.N皇后问题,算是一道很经典的题目,也是一道难度不低的题目,但是只要我们掌握并理解了判断的逻辑,并且在代码编写上进行注 ...

  2. Leetcode.51. N 皇后

    Leetcode.51. N 皇后 难度:hard 好久没有过hard题目了,还是很开心! 本题的难点在于如何对一个二维数组进行回溯,我们的思路是以chessBoard的行hang为树的每一层,每次递 ...

  3. LeetCode 51. N 皇后、52. N 皇后 II

    51. N 皇后 n皇后问题要求皇后放置后,同一行,同一列,同一斜线上不存在其他的皇后即可 采用回溯法解决该问题 同时应该设置一个函数判断当该位置放置皇后后,是否合法 因为是采用回溯法放置皇后,每行只 ...

  4. LeetCode 51. N皇后 / 52. N皇后 II(回溯)

    1. 题目 n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 上图为 8 皇后问题的一种解法. 给定一个整数 n,返回所有不同的 n 皇后问题的解决方案 ...

  5. leetcode 51. N 皇后

    题目链接 与52类似,建议先做52 和52题不同的是,多了一个一维数组board保存每个皇后的列的位置,这样方便后续的读取. 在leetcode中 函数返回值为List<List> 但是我 ...

  6. 2022-3-31 Leetcode 51.N皇后

    class Solution {public:vector<vector<string>> res; //记录所有符合答案vector<string> temp; ...

  7. LeetCode——51. N 皇后

    一.题目 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子. n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 给你一个整数 ...

  8. LeetCode 51. N皇后

    https://leetcode-cn.com/problems/n-queens/ 难度:困难   n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. ...

  9. Leetcode 75. 颜色分类 (每日一题 20210817)

    给定一个包含红色.白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色.白色.蓝色顺序排列.此题中,我们使用整数 0. 1 和 2 分别表示红色.白色和蓝色.示例 ...

最新文章

  1. ALV字段编辑时,输入长度受限制解决方法
  2. 【NLP】2020深度文本匹配最新进展:精度、速度我都要!
  3. Quick Audience精准营销之后 良品铺子还将借力阿里云数据中台有更多动作
  4. 应用程序框架实战三十六:CRUD实战演练介绍
  5. matlab向量的角标,【MATLAB】利用冒号表达式获得子矩阵
  6. java 查找排序_查找与排序算法(Java实现)
  7. python之路--day10-闭包函数
  8. [转载] python中join的使用
  9. javascript_php 正则匹配 转
  10. harmonyos 2.0开机动画壁纸,华为鸿蒙OS 2.0开机动画
  11. 《笨方法学Python》第一期
  12. 【LaTeX】pdfTex error: pdflatex.exe (file simhei.ttf): cannot open TrueType font file for reading解决方案
  13. 电机不动 米兔机器人_深度解密米兔积木机器人八大黑科技
  14. Python-实现(整蛊)消息批量发送
  15. Kaldi 使用,egs下通用样例及功能小结
  16. C语言案例教学设计论文,C语言教学设计本科教学论文
  17. 2004年南京美食地图 [转载]
  18. html怎么改变li前面的点,CSS定义li前面的小点样式
  19. 计算机协会ppt介绍,计算机协会成功举办ppt大赛
  20. 导航上显示某个地点已关闭什么意思_想要玩好iPhone手机,6个关闭、4个开启,要牢记!...

热门文章

  1. Docker镜像的基本操作
  2. PHP是弱类型语言,自动转换,强制转换
  3. Intellij idea 14 创建简单的Web项目
  4. phpunit 单元测试案例--签到任务
  5. Django常用模板标签
  6. KEIL和source insight混合编辑时,文本对齐的方式
  7. php clownfish,Python实现的金山快盘的签到程序
  8. 军用软件概算计价规范_超强干货分享:547建筑工程计量与计价,帮你轻松掌握计量与计价...
  9. vue前端上传文件夹的插件_基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件...
  10. python3屏幕抓取程序_python之屏幕抓取