class Solution {public:vector<vector<string>> res;  //记录所有符合答案vector<string> temp;         //记录单个答案bool check(int i,vector<int>& queen,int j){for(int k=0;k<queen.size();k++){if(j==queen[k] || queen[k]-k==j-i || j+i==k+queen[k]){ //同一列+主斜线+次斜线判断(来源于:鞍点题目中找到的规律)//写线上行下标+列下标相等//行下标与列下标之差相等//这样就检查了不能在同一行,同一列,同一斜线上面return false;}}return true;}void find(int i,vector<int>& queen,int n){if(n==i){                     //当递归到n说明该次方法可行res.emplace_back(temp);return ;}for(int j=0;j<n;j++){if(check(i,queen,j)){      //第i行的第j列是否可以放置//记录//不用记录行的原因是,下一次检索是在下一行当中检索,不需要记录行数,只需要看列中是否有占用的queen.emplace_back(j);      string tt=string(n,'.');tt[j]='Q';temp.emplace_back(tt);find(i+1,queen,n);//检查下一行//最后检查到底了是一定要回来的。     //回溯queen.pop_back();temp.pop_back();}}}vector<vector<string>> solveNQueens(int n) {vector<int> queen;    // 数组记录皇后位置   i行j列find(0,queen,n);      // 从第0行开始递归  return res;}
};作者:Zber
链接:https://leetcode-cn.com/problems/n-queens/solution/c-hui-su-by-zber-b5uu/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

2022-3-31 Leetcode 51.N皇后相关推荐

  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. LeetCode——51. N 皇后

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

  7. LeetCode 51. N皇后

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

  8. Leetcode 51. N 皇后 (每日一题 20211008)

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

  9. leetcode 51. N 皇后 思考分析

    目录 题目 思考 AC代码 题目 n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 思考 首先以N=4为例,画出解空间树的一部分: 根据模板: void ...

最新文章

  1. 回归(regression)与分类(classification)的区别
  2. 金融专有云数据安全实践
  3. kibana客户端工具操作ElasticSearch(增删改查三)
  4. 【es】es 分布式一致性原理剖析(三)-Data篇
  5. oracle jinitiator版本太旧,Windows7系统运行java软件提示Oracle JInitiator版本太旧怎么办...
  6. --从输入URL到页面展示的详细过程
  7. Java static变量
  8. 2022焊工(初级)操作证考试题库及答案
  9. 自己动手写2D物理引擎-初级篇(1)
  10. Vue项目中使用xlsx实现批量导入导出功能
  11. 【MySQL练习案例】
  12. python列表生成器语法_Python 列表生成式\生成器
  13. 京东JD App签名/加密算法研究
  14. PHP+MySQL实现简单的登录注册
  15. 台湾--电话正则表达式
  16. 三入职场 - 你可以从我身上学到这些(附毕业Vlog)
  17. 如何安装固态硬盘,并将其设为系统盘
  18. AJAX---发送POST请求、Get请求、请求四步、解决低版本的缓存问题
  19. [SSD核心技术:FTL 11] 固态硬盘Read 技术详解
  20. ESP32使用有源蜂鸣器演奏《反方向的钟》

热门文章

  1. 期刊印刷时间大概多久
  2. Python自定义高精度小数计算来获取巴塞尔问题的近似值
  3. 【数据库】HIVE SQL索引及其使用
  4. RKMPP库快速上手--(三)MPP解码入门
  5. WiFi战场,谁主沉浮
  6. 智慧校园解决方案有哪些?
  7. java8新特性:对map集合排序,根据key或者value操作排序(升序、降序)
  8. 选择公有云桌面还是私有云桌面?有没有免费的云桌面?
  9. 测试产品创新——服务端测试演变之路
  10. SF Symbols 2在哪里下载 (SwiftUI 教程)