leetcode面试题 08.12. 八皇后(回溯)

设计一种算法,打印 N 皇后在 N × N 棋盘上的各种摆法,其中每个皇后都不同行、不同列,也不在对角线上。这里的“对角线”指的是所有的对角线,不只是平分整个棋盘的那两条对角线。

注意:本题相对原题做了扩展

示例:

输入:4
输出:[[".Q…","…Q",“Q…”,"…Q."],["…Q.",“Q…”,"…Q",".Q…"]]
解释: 4 皇后问题存在如下两个不同的解法。
[
[".Q…", // 解法 1
“…Q”,
“Q…”,
“…Q.”],

["…Q.", // 解法 2
“Q…”,
“…Q”,
“.Q…”]
]

代码

class Solution {List<List<String>> cList=new ArrayList<>();public List<List<String>> solveNQueens(int n) {char[][] chars=new char[n][n];for(int i=0;i<n;i++)Arrays.fill(chars[i],'.');//全部都没放皇后solveNQ(n,chars,0);return cList;}public void solveNQ(int n,char[][] chars,int row) {if(row==n)//返回结果{List<String> temp=new ArrayList<>();for(int i=0;i<n;i++){temp.add(String.valueOf(chars[i]));}cList.add(temp);return;}for(int i=0;i<n;i++)//选择列{if(isOk(i,chars,row)){chars[row][i]='Q';solveNQ(n,chars,row+1);//下一行chars[row][i]='.';//回溯}}}public boolean isOk(int col,char[][] chars,int row) {//检查位置是否合法for(int i=row-1;i>=0;i--){if(chars[i][col]=='Q')return false;if(col+row-i<chars.length&&chars[i][col+row-i]=='Q')return false;if(col-row+i>=0&&chars[i][col-row+i]=='Q')return false;}return true;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/393814.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 进入redis 数据库,Linux下Redis数据库的安装方法与自动启动脚本分享

安装Redis(1) 下载Rediswget http://redis.googlecode.com/files/redis-2.2.11.tar.gztar xzvf redis-2.2.11.tar.gz(2) 编译并安装Redismake && make install(3) 复制并修改配置文件cp redis.conf /etc/redis.confvi /etc/redis.conf注意修改以下几项&#xff1a;daem…

Flutter 36: 图解自定义 View 之 Canvas (三)

小菜继续学习 Canvas 的相关方法&#xff1a; drawVertices 绘制顶点 小菜上次没有整理 drawVertices 的绘制方法&#xff0c;这次补上&#xff1b;Vertice 即顶点&#xff0c;通过绘制多个顶点&#xff0c;在进行连线&#xff0c;多用于 3D 模型中&#xff1b; drawVertices 包…

sphinx 项目根目录_如何使用Sphinx工具记录Django项目

sphinx 项目根目录I recently visited a company where I had a nice talk with one of its employees. We talked about technology and programming. Then we touched the subject of project documentation. Specifically how React does it automatically but Django doesn…

程序员必知之浮点数运算原理详解

导读&#xff1a;浮点数运算是一个非常有技术含量的话题&#xff0c;不太容易掌握。许多程序员都不清楚使用操作符比较float/double类型的话到底出现什么问题。 许多人使用float/double进行货币计算时经常会犯错。这篇文章是这一系列中的精华&#xff0c;所有的软件开发人员都应…

axure选中后横线切换_3、开关状态切换 —— Axure实用交互

写在开头:开关的制作在几乎所有原型设计中都会用到&#xff0c;所以美观自然的交互开关可以给你的原型设计加分不少。本次开关设计主要用到的是逻辑为&#xff1a;选中状态的切换首先&#xff0c;来看一下演示动画开始原型设计一、创建元件首先需要打开Axure软件&#xff0c;并…

Django框架——模型(数据库操作)

-- models.py-- ORM(object-relation mapping) 实现数据模型与数据库的解耦&#xff1b;# 对象&#xff0c;关系&#xff0c;映射&#xff1b;1.根 据对象的类型生成表结构&#xff1b;2.将对象、列表的操作&#xff0c;转换为sql语句&#xff1b;3.将sql查询到的结果转换为对象…

leetcode140. 单词拆分 II(回溯+记忆化)

给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict&#xff0c;在字符串中增加空格来构建一个句子&#xff0c;使得句子中所有的单词都在词典中。返回所有这些可能的句子。 说明&#xff1a; 分隔时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 …

#loj 3058 [HNOI2019] 白兔之舞

单位根反演思博题 模数是乱给的记得整个任意模数ntt k为p-1的约数意味着一定存在k次单位根&#xff0c;设g是p的原根则\(w_{k}^{1}g^{\frac{k-1}{p}}\) 既然k次单位根存在自然考虑单位根反演了 设\(f(i)\)表示跳了i步并且停在了第二维为y的顶点的方案数 设\(st\)表示初始向量而…

标杆徐2018 Linux自动化运维实战,标杆徐2018 Linux自动化运维系列⑦: SaltStack自动化配置管理实战...

结合企业自动化集群场景讲解&#xff0c;轻松玩转SaltStack自动化配置管理工具第1章 SaltStack基础应用SaltStack安装SaltStack认证Saltstack远程执行SaltStack配置管理第2章 SaltStack数据系统SaltStack数据系统-Grains 客户端向服务端发送状态SaltStack数据系统-paiil 服务…

JS 对象引用问题

var a {n:1}; var b a; a {n:2}; a.x a ;console.log(a.x);console.log(b.x); var a {n:1}; var b a; a.x a {n:2}; console.log(a.x);console.log(b.x); 这两个问题主要理解两点就很简单了。 对象是引用类型&#xff0c;改变赋值只是改变指针的引用。运算符相当于改变…

工程代码_Egret开发笔记(二)基础工程代码阅读

代码目录结构在Egret Wing中打开上一节中我们创建的项目工程&#xff0c;查看代码目录结构&#xff0c;Forward在如下图中标记了各个目录的及关键文件的用途。代码阅读理解接下来我们从web入口一步一步阅读初始代码。首先打开index.html文件&#xff0c;我们看到index文件内容如…

知晓云助力小程序开发

小程序开发遇到瓶颈虽然腾讯提供了小程序解决方案&#xff0c;https://cloud.tencent.com/solution/la。但是对于普通开发者或者小企业的开发人员来说&#xff0c;购买域名&#xff0c;网站备案、部署SSL证书&#xff0c;安装会话服务器。业务逻辑上要使用数据库&#xff0c;缓…

leetcode131. 分割回文串(回溯)

给定一个字符串 s&#xff0c;将 s 分割成一些子串&#xff0c;使每个子串都是回文串。 返回 s 所有可能的分割方案。 示例: 输入: “aab” 输出: [ [“aa”,“b”], [“a”,“a”,“b”] ] 代码 class Solution {List<List<String>> stringListnew ArrayList…

Cracer渗透-windows基础(系统目录,服务,端口,注册表)

系统目录C:\Windows\system32\config\SAM (保存系统密码) 无法正常修改&#xff0c;可以进入PE系统进行修改&#xff08;先备份在清空&#xff09;利用结束后&#xff0c;再将之前备份的恢复C:\Windows\System32\drivers\hosts&#xff08;域名解析文件&#xff09;hosts欺骗&a…

java--xml文件读取(SAX)

SAX解析原理&#xff1a; 使用Handler去逐个分析遇到的每一个节点 SAX方式解析步奏&#xff1a; 创建xml解析需要的handler&#xff08;parser.parse(file,handler)&#xff09; package com.imooc_xml.sax.handler;import java.util.ArrayList;import org.xml.sax.Attributes…

算法训练营 重编码_编码训练营之后该做什么-以及如何获得成功

算法训练营 重编码by Anthony Morris安东尼莫里斯(Anthony Morris) 编码训练营之后该做什么-以及如何获得成功 (What to do — and how to find success — after a coding bootcamp) It’s almost been two years since I graduated from the Lighthouse Labs Web Developmen…

leetcode860. 柠檬水找零(贪心)

在柠檬水摊上&#xff0c;每一杯柠檬水的售价为 5 美元。 顾客排队购买你的产品&#xff0c;&#xff08;按账单 bills 支付的顺序&#xff09;一次购买一杯。 每位顾客只买一杯柠檬水&#xff0c;然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零&#xff0…

linux防火墙开启某端口命令行,linux上防火墙 开启某个端口

linux下防火墙 开启某个端口直接在/etc/sysconfig/iptables中增加一行&#xff1a;-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 8080 -j ACCEPT注意添加位置:-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT-A RH-Fi…

imp命令导入指定表_Sqoop 使用shell命令的各种参数的配置及使用方法

点击上方蓝色字体&#xff0c;选择“设为星标”回复”资源“获取更多资源本文作者&#xff1a;Sheep Sun本文链接&#xff1a;https://www.cnblogs.com/yangxusun9/p/12558683.html大数据技术与架构点击右侧关注&#xff0c;大数据开发领域最强公众号&#xff01;暴走大数据点击…

黑客频繁来袭 关注云计算的安全与保障

本文讲的是 : 黑客频繁来袭 关注云计算的安全与保障 , 【IT168 资讯】日前&#xff0c;虎嗅网遭受网络攻击的事件&#xff0c;引起业内关注。2月27日晚&#xff0c;虎嗅网中断访问&#xff0c;虎嗅网新浪官方微博随即发表声明&#xff0c;表示网站受到恶意攻击&#xff0c;随…