2022-3-31 Leetcode 51.N皇后
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皇后相关推荐
- 日拱一卒——LeetCode 51.N皇后
大家好呀,今天是今天为大家带来的LeetCode的题目是LeetCode 51.N皇后问题,算是一道很经典的题目,也是一道难度不低的题目,但是只要我们掌握并理解了判断的逻辑,并且在代码编写上进行注 ...
- Leetcode.51. N 皇后
Leetcode.51. N 皇后 难度:hard 好久没有过hard题目了,还是很开心! 本题的难点在于如何对一个二维数组进行回溯,我们的思路是以chessBoard的行hang为树的每一层,每次递 ...
- LeetCode 51. N 皇后、52. N 皇后 II
51. N 皇后 n皇后问题要求皇后放置后,同一行,同一列,同一斜线上不存在其他的皇后即可 采用回溯法解决该问题 同时应该设置一个函数判断当该位置放置皇后后,是否合法 因为是采用回溯法放置皇后,每行只 ...
- LeetCode 51. N皇后 / 52. N皇后 II(回溯)
1. 题目 n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 上图为 8 皇后问题的一种解法. 给定一个整数 n,返回所有不同的 n 皇后问题的解决方案 ...
- leetcode 51. N 皇后
题目链接 与52类似,建议先做52 和52题不同的是,多了一个一维数组board保存每个皇后的列的位置,这样方便后续的读取. 在leetcode中 函数返回值为List<List> 但是我 ...
- LeetCode——51. N 皇后
一.题目 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子. n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 给你一个整数 ...
- LeetCode 51. N皇后
https://leetcode-cn.com/problems/n-queens/ 难度:困难 n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. ...
- Leetcode 51. N 皇后 (每日一题 20211008)
n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击.给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案.每一种解法包含一个不同的 n 皇后问题 ...
- leetcode 51. N 皇后 思考分析
目录 题目 思考 AC代码 题目 n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 思考 首先以N=4为例,画出解空间树的一部分: 根据模板: void ...
最新文章
- 回归(regression)与分类(classification)的区别
- 金融专有云数据安全实践
- kibana客户端工具操作ElasticSearch(增删改查三)
- 【es】es 分布式一致性原理剖析(三)-Data篇
- oracle jinitiator版本太旧,Windows7系统运行java软件提示Oracle JInitiator版本太旧怎么办...
- --从输入URL到页面展示的详细过程
- Java static变量
- 2022焊工(初级)操作证考试题库及答案
- 自己动手写2D物理引擎-初级篇(1)
- Vue项目中使用xlsx实现批量导入导出功能
- 【MySQL练习案例】
- python列表生成器语法_Python 列表生成式\生成器
- 京东JD App签名/加密算法研究
- PHP+MySQL实现简单的登录注册
- 台湾--电话正则表达式
- 三入职场 - 你可以从我身上学到这些(附毕业Vlog)
- 如何安装固态硬盘,并将其设为系统盘
- AJAX---发送POST请求、Get请求、请求四步、解决低版本的缓存问题
- [SSD核心技术:FTL 11] 固态硬盘Read 技术详解
- ESP32使用有源蜂鸣器演奏《反方向的钟》