description:

八皇后
Note:

Example:

Example:Input: 4
Output: [[".Q..",  // Solution 1"...Q","Q...","..Q."],["..Q.",  // Solution 2"Q...","...Q",".Q.."]
]
Explanation: There exist two distinct solutions to the 4-queens puzzle as shown above.

answer:


class Solution {
public:vector<vector<string>> solveNQueens(int n) {vector<vector<string>> res;vector<string> queens(n, string(n, '.')); //string(int n,char c);  //用n个字符c初始化helper(0, queens, res);return res;}void helper(int curRow, vector<string>& queens, vector<vector<string>>& res) {int n = queens.size();if (curRow == n) { //如果已经进行到最后一行,就证明之前都可以,那就结束了,得到了一种可能的结果res.push_back(queens);return;}for (int i = 0; i < n; ++i) {if (isValid(queens, curRow, i)) {// 在现在进行到的这一行,先假设放到现在这一行,看看如果和之前不冲突就继续递归queens[curRow][i] = 'Q'; helper(curRow + 1, queens, res);queens[curRow][i] = '.';//递归之后发现不太行之后再重新把这个位置设置成'.',然后换一列继续递归}}}bool isValid(vector<string>& queens, int row, int col) { //因为之前是就在这一行看,找一列合格的,所以不用检查行了,这一行一定就它一个皇后for (int i = 0; i < row; ++i) {if (queens[i][col] == 'Q') return false;}for (int i = row - 1, j = col + 1; i >= 0 && j < queens.size(); --i, ++j) {if (queens[i][j] == 'Q') return false;}for (int i = row - 1, j = col - 1; i >= 0 && j >= 0; --i, --j) {if (queens[i][j] == 'Q') return false;}return true;}
};

relative point get√:

  • string(int n,char c); //用n个字符c初始化

hint :

转载于:https://www.cnblogs.com/forPrometheus-jun/p/11241064.html

51. N-Queens相关推荐

  1. 2018 ucla计算机排名,2018福布斯最具价值美国大学排名:加州UCLA位列榜首!

    对于美国留学的申请来说,也许大家在选校过程中都会比较倾向于USNEWS的院校排名榜.但是,怎样从多方面更多的了解你想要选择的学校呢?美国著名的权威财经杂志<福布斯>根据净价格.净债务.校友 ...

  2. LeetCode github集合,附CMU大神整理笔记

    Github LeetCode集合 本人所有做过的题目都写在一个java项目中,同步到github中了,算是见证自己的进步.github目前同步的题目是2020-09-17日之后写的题.之前写过的题会 ...

  3. LeetCode开心刷题二十七天——51. N-Queens

    Bonus: const修饰的i我们称之为符号常量.即,i不能在其他地方被重新赋值了.注意:const int i与int const i是等价的 51. N-Queens Hard 104047Fa ...

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

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

  5. kolla-ansible 部署OpenStack queens版本(转)

    一. 实验环境: 3台主机安装CentOS7 minimal系统64G内存,800G+1T * 3硬盘(其中1T盘为后期ceph部署做准备),4个千兆网卡: 用途 网口 ip地址段 控制网络 enp2 ...

  6. Leetcode(51)——N 皇后

    Leetcode(51)--N 皇后 题目 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子. n n n 皇后问题 研究的是如何将 n n n 个皇后放置在 n × n n ...

  7. 浅谈几种区块链网络攻击以及防御方案之51#37攻击

    旧博文,搬到 csdn 原文:http://rebootcat.com/2020/04/11/network_attack_of_blockchain_51_attack/ 写在前面的话 自比特币诞生 ...

  8. 51单片机实现对24C02进行页写、顺序读取并显示验证

    源:51单片机实现对24C02进行页写.顺序读取并显示验证 //******************************************************************** ...

  9. Android API 中文 (51) —— ZoomButtonsController

    一.结构 public class ZoomButtonsController extends View implements View.OnTouchListener java.lang.Objec ...

  10. 51单片机编码自学_这是9个月的自学式编码看起来像什么

    51单片机编码自学 by Stephen Mayeux 斯蒂芬·马约(Stephen Mayeux) 这是9个月的自学式编码看起来像什么 (Here's What 9 Months of Self-T ...

最新文章

  1. 《Ray Tracing in One Weekend》、《Ray Tracing from the Ground Up》读后感以及光线追踪学习推荐...
  2. cds.data:=dsp.data赋值有时会出现AV错误剖析
  3. Java后端学习路线【哔哩哔哩网站】【Java基础、SSM框架、Maven、Mysql、Idea的使用、Springboot、Sprinfcloud、设计模式】
  4. python的django介绍_【Python基础知识】Django框架简介
  5. python win32模块详解_python模块:win32com用法详解
  6. 合并excel文件 C语言,如何用VBA函数合并多个文件
  7. 某大型银行深化系统技术方案之十七:技术架构
  8. Kaldi AMI数据集脚本学习7---train_deltas.sh
  9. python自定义函数的关键字_python学习之--自定义函数:
  10. 面向对象chapter2
  11. 5分钟学会如何玩转云数据库组件(迁移,审计,订阅)
  12. git add未commit reset恢复文件
  13. ArcEingine——IRelationalOperator的Crosses与Overlaps
  14. 超声波接收电路原理解析
  15. UOJ449. 【集训队作业2018】喂鸽子 [概率期望,min-max容斥,生成函数]
  16. 常微分方程求解器ODE solver
  17. 参加珠海苹果售后维修体验
  18. 满口春日清爽 书亦烧仙草刺梨新品上市
  19. 【QTdesigner】课时36.使用QTextEdit控件输入多行文本【pyqt5+QTdesigner模式】
  20. 厂区佩戴安全帽检测算法 yolov5

热门文章

  1. kubeadm单集群部署k8s1.15.1flannel网络
  2. vscode 最好的ui主题
  3. 设计中色彩的注意事项有哪些
  4. 为什么对开发者很重要?
  5. ios中通过ALAssetsLibrary获取所有图片
  6. 插件式程序开发及其应用(C#)
  7. 自动编译和提交脚本(结合svn和visual studio)
  8. java 文件上传ssm_ssm框架下实现文件上传
  9. android弹窗不能手动关闭_Android app(Service)如何在后台随时随地弹出/关闭悬浮窗?...
  10. 看全域消费者运营Quick Audience如何实现自动化营销?