当前位置: 首页 > news >正文

LeetCode热题100 N 皇后

题目描述

按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。
n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。
给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。
每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。

示例 1:


输入:n = 4
输出:[[“.Q…”,“…Q”,“Q…”,“…Q.”],[“…Q.”,“Q…”,“…Q”,“.Q…”]]
解释:如上图所示,4 皇后问题存在两个不同的解法。

示例 2:

输入:n = 1
输出:[[“Q”]]

提示:

1 <= n <= 9

思路

1 进行dfs,每层代表选取的行数,层内只需要遍历列数。
2 每个位置需要判断列、主对角线、副对角线是否重复,行不需要判断,因为dfs将层隔开了。
3 主对角线和副对角线的表示可以用 x + y 和 y - x 表示,注意y - x可能是负数,所以需要进行偏正为y - x + n。

代码

classSolution{public:vector<vector<string>>solveNQueens(intn){// 记录多个答案vector<vector<string>>ans;// 记录单个答案vector<string>res;// 记录每层的答案strings(n,'.');// 某一列是否被标记vector<bool>st_col(n,false);// 主对角线是否被标记vector<bool>main_diag(n*2,false);// 次对角线是否被标记vector<bool>sub_diag(n*2,false);// 每层枚举一行的所有列dfs(0,n,st_col,main_diag,sub_diag,s,res,ans);returnans;}voiddfs(introw,intn,vector<bool>&st_col,vector<bool>&main_diag,vector<bool>&sub_diag,string&s,vector<string>&res,vector<vector<string>>&ans){if(res.size()==n){ans.push_back(res);return;}// 每层枚举一行的所有列for(intcol=0;col<n;++col){// 没有列、主副对角线冲突if(st_col[col]==false&&main_diag[row+col]==false&&sub_diag[col-row+n]==false){st_col[col]=true;main_diag[row+col]=true;sub_diag[col-row+n]=true;s[col]='Q';res.push_back(s);s[col]='.';// 提前复原, 下一层要用到dfs(row+1,n,st_col,main_diag,sub_diag,s,res,ans);st_col[col]=false;main_diag[row+col]=false;sub_diag[col-row+n]=false;res.pop_back();}}}};
http://www.jsqmd.com/news/491750/

相关文章:

  • 2026净肤保湿沐浴露实测:告别油腻假滑,5款高口碑闭眼入 - 资讯焦点
  • 2026年种植体品牌深度测评:五大主流品牌全维度对比分析 - 资讯焦点
  • 我把 Cursor 换成了 Trae:7天深度体验后,这3个功能让我回不去了
  • 2026上海B2B企业出海:推荐5家靠谱的Facebook推广获客服务商与海外社媒代运营公司(附带联系方式) - 品牌2025
  • 2026美白去口臭牙膏选购指南!市面上去牙渍牙膏推荐哪款?亮齿护龈选它 - 资讯焦点
  • 好影教育是正规机构吗? - 资讯焦点
  • AI临终牧师:记录废弃算法最后的“忏悔“
  • AD 极坐标操作方式
  • 2026美国投资移民中介排名及行业机构解析 - 品牌排行榜
  • 微信也能定时发消息了?这个隐藏功能,很多人都不知道!
  • 2026市场总监必看:客户精细化运营怎么选系统?附5大盘点 - 纷享销客智能型CRM
  • 模型预测控制专题(九)—— 进一步优化的方向
  • 2026宠物玩具橡胶制品生产厂家实力之选,尼可高分子以技术赋能产品 - 资讯焦点
  • 无人机视角建筑损坏程度识别分割数据集labelme格式865张6类别
  • 对标国际标准:上海昂林等国产厂家在全自动硫化物分析仪领域的突破 - 品牌推荐大师1
  • 2026北京美研申请留学中介哪家好?超全筛选攻略来啦! - 资讯焦点
  • 探索基于Matlab的齿轮 - 轴 - 轴承系统含间隙非线性动力学模型
  • 好影教育的师资怎么样? - 资讯焦点
  • 别再手动调 Prompt 了!这款国产神器让 AI 输出质量提升 300%!免费开源!
  • Android Studio 安装配置完全指南(2026最新版)
  • 北京美国本科留学机构哪家好?这家直营中介凭实力出圈! - 资讯焦点
  • AnswerThis:打造科学知识操作系统的新征程
  • 实装车驾驶仿真系统|真车改装模拟系统
  • 高端家电品牌排行榜:2026年最受欢迎的创新与节能巨头 - 资讯焦点
  • unsloth 框架为什么快, unsloth 强化学习
  • WGDGX平台荣膺世界黄金理事会(WGC)认证,引领全球黄金与加密货币交易新时代 - 资讯焦点
  • 2026年皮带导轨源头厂家口碑分析,品质之选指南,市面上导轨厂家优质品牌选购指南 - 品牌推荐师
  • 小白程序员必备:收藏这份GraphRAG学习指南,轻松架构未来大模型!
  • 问卷设计“新老对决”:书匠策AI如何重塑科研数据收集新生态?
  • 美的冰箱售后服务全解析:选购前必须知道的技术与保障 - 资讯焦点