51. N-Queens
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相关推荐
- 2018 ucla计算机排名,2018福布斯最具价值美国大学排名:加州UCLA位列榜首!
对于美国留学的申请来说,也许大家在选校过程中都会比较倾向于USNEWS的院校排名榜.但是,怎样从多方面更多的了解你想要选择的学校呢?美国著名的权威财经杂志<福布斯>根据净价格.净债务.校友 ...
- LeetCode github集合,附CMU大神整理笔记
Github LeetCode集合 本人所有做过的题目都写在一个java项目中,同步到github中了,算是见证自己的进步.github目前同步的题目是2020-09-17日之后写的题.之前写过的题会 ...
- LeetCode开心刷题二十七天——51. N-Queens
Bonus: const修饰的i我们称之为符号常量.即,i不能在其他地方被重新赋值了.注意:const int i与int const i是等价的 51. N-Queens Hard 104047Fa ...
- 日拱一卒——LeetCode 51.N皇后
大家好呀,今天是今天为大家带来的LeetCode的题目是LeetCode 51.N皇后问题,算是一道很经典的题目,也是一道难度不低的题目,但是只要我们掌握并理解了判断的逻辑,并且在代码编写上进行注 ...
- kolla-ansible 部署OpenStack queens版本(转)
一. 实验环境: 3台主机安装CentOS7 minimal系统64G内存,800G+1T * 3硬盘(其中1T盘为后期ceph部署做准备),4个千兆网卡: 用途 网口 ip地址段 控制网络 enp2 ...
- Leetcode(51)——N 皇后
Leetcode(51)--N 皇后 题目 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子. n n n 皇后问题 研究的是如何将 n n n 个皇后放置在 n × n n ...
- 浅谈几种区块链网络攻击以及防御方案之51#37攻击
旧博文,搬到 csdn 原文:http://rebootcat.com/2020/04/11/network_attack_of_blockchain_51_attack/ 写在前面的话 自比特币诞生 ...
- 51单片机实现对24C02进行页写、顺序读取并显示验证
源:51单片机实现对24C02进行页写.顺序读取并显示验证 //******************************************************************** ...
- Android API 中文 (51) —— ZoomButtonsController
一.结构 public class ZoomButtonsController extends View implements View.OnTouchListener java.lang.Objec ...
- 51单片机编码自学_这是9个月的自学式编码看起来像什么
51单片机编码自学 by Stephen Mayeux 斯蒂芬·马约(Stephen Mayeux) 这是9个月的自学式编码看起来像什么 (Here's What 9 Months of Self-T ...
最新文章
- 《Ray Tracing in One Weekend》、《Ray Tracing from the Ground Up》读后感以及光线追踪学习推荐...
- cds.data:=dsp.data赋值有时会出现AV错误剖析
- Java后端学习路线【哔哩哔哩网站】【Java基础、SSM框架、Maven、Mysql、Idea的使用、Springboot、Sprinfcloud、设计模式】
- python的django介绍_【Python基础知识】Django框架简介
- python win32模块详解_python模块:win32com用法详解
- 合并excel文件 C语言,如何用VBA函数合并多个文件
- 某大型银行深化系统技术方案之十七:技术架构
- Kaldi AMI数据集脚本学习7---train_deltas.sh
- python自定义函数的关键字_python学习之--自定义函数:
- 面向对象chapter2
- 5分钟学会如何玩转云数据库组件(迁移,审计,订阅)
- git add未commit reset恢复文件
- ArcEingine——IRelationalOperator的Crosses与Overlaps
- 超声波接收电路原理解析
- UOJ449. 【集训队作业2018】喂鸽子 [概率期望,min-max容斥,生成函数]
- 常微分方程求解器ODE solver
- 参加珠海苹果售后维修体验
- 满口春日清爽 书亦烧仙草刺梨新品上市
- 【QTdesigner】课时36.使用QTextEdit控件输入多行文本【pyqt5+QTdesigner模式】
- 厂区佩戴安全帽检测算法 yolov5
热门文章
- kubeadm单集群部署k8s1.15.1flannel网络
- vscode 最好的ui主题
- 设计中色彩的注意事项有哪些
- 为什么对开发者很重要?
- ios中通过ALAssetsLibrary获取所有图片
- 插件式程序开发及其应用(C#)
- 自动编译和提交脚本(结合svn和visual studio)
- java 文件上传ssm_ssm框架下实现文件上传
- android弹窗不能手动关闭_Android app(Service)如何在后台随时随地弹出/关闭悬浮窗?...
- 看全域消费者运营Quick Audience如何实现自动化营销?