【回溯】【DFS】51.N皇后

题目

class Solution {public List<List<String>> solveNQueens(int n) {List<List<String>> res = new ArrayList<>();char[][] tmp = new char[n][n];for (int i = 0; i < n; ++i) {Arrays.fill(tmp[i], '.');}dfs(tmp, 0, res);return res;}public void dfs(char[][] tmp, int layer, List<List<String>> res) {int n = tmp.length;if (layer == n) {List<String> solu = new ArrayList<>();for (int k = 0; k < n; ++k) {solu.add(String.valueOf(tmp[k]));}res.add(solu);return;}for (int k = 0; k < n; ++k) {if (isValid(tmp, layer, k)) {tmp[layer][k] = 'Q';dfs(tmp, layer + 1, res);tmp[layer][k] = '.';}}}boolean isValid(char[][] tmp, int x, int y) {int n = tmp.length;for (int i = 0; i < n; ++i) {if (tmp[i][y] == 'Q' && i < x) {return false;}}int i = 1;while (x - i >= 0 && y - i >= 0) { if (tmp[x - i][y - i] == 'Q') {return false;}++i;}i = 1;while (x - i >= 0 && y + i < n) {if (tmp[x - i][y + i] == 'Q') {return false;}++i;}return true;}
}

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

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

相关文章

vector实现循环队列

顺序队列 顺序队列是一种先进先出的线性表&#xff0c;简称FIFO。允许插入的一端称为队尾&#xff0c;允许删除的一端称为队头。因为其入队和出队操作均是&#xff08;front/rear&#xff09;指针向后移动&#xff0c;以进行结点的链接和删除&#xff0c;这就造成其使用空间不断…

Redis数据结构简介

首先对redis来说&#xff0c;所有的key&#xff08;键&#xff09;都是字符串。我们在谈基础数据结构时&#xff0c;讨论的是存储值的数据类型&#xff0c;主要包括常见的5种数据类型&#xff0c;分别是&#xff1a;String、List、Set、Zset、Hash。 1.粉丝福利 最新很多同学问…

Vim中取消高亮显示的文本

在Vim中取消高亮显示的文本&#xff0c;可以使用以下方法&#xff1a; 临时取消高亮&#xff1a;在Normal模式下按下:&#xff08;冒号&#xff09;&#xff0c;然后输入nohlsearch&#xff0c;并按下Enter键。这将临时取消当前搜索结果的高亮显示。搜索结果仍然存在&#xff0…

高空作业MR混合现实情景实训教学应用

MR混合现实情景实训教学系统结合了虚拟现实和增强现实的优点&#xff0c;能够提供一种真实而丰富的环境&#xff0c;使学习者可以在其中进行模拟的高空作业。通过精确的传感器和高级算法&#xff0c;捕捉到学生的动作和环境变化&#xff0c;从而实时调整虚拟环境的反馈&#xf…

第5章-第1节-初识Java中的面向对象

1、面向对象和面向过程&#xff1a; 面向对象&#xff1a;(编程思想) 较晚出现 面向&#xff1a;看、关注、瞅 对象&#xff1a;个体、个例、实体、实例、结果 侧重点&#xff1a;关注结果 理解&#xff1a;将我们从劳动者变成了指挥者 > 解放程序员 面向过程&#xf…

开源音频处理代码 speex

Speex是一套主要针对语音的开源免费&#xff0c;无专利保护的音频压缩格式。 speex是近年来开发出的一套功能强大的语音引擎&#xff0c;能够实现高质量和低比特率的编码。它不仅提供了基于码激励线性预测&#xff08;CELP&#xff09;算法的编/解码模块&#xff0c;而且在其最…

使用SQL和Python处理Excel文件数据

目录 一、引言 二、使用SQL查询Excel文件数据 1、导入必要的库 2、创建数据库连接 3、读取Excel文件数据 4、将数据写入数据库 5、使用SQL查询数据 三、使用Python读取和处理Excel文件数据 1、导入必要的库 2、读取Excel文件数据 3、数据处理和分析 4. 将数据可视化…

ModuleNotFoundError: No module named ‘openai.error‘

ModuleNotFoundError: No module named ‘openai.error’ result self.fn(*self.args, **self.kwargs) File “H:\chatGPTWeb\chatgpt-on-wechat\channel\chat_channel.py”, line 168, in _handle reply self._generate_reply(context) File “H:\chatGPTWeb\chatgpt-on-wec…

【网络安全】—计算机网络基础

文章目录 网络必备基础物理层数据链路层与交换机网络模型OSI/TCP对等传输虚拟局域网VLAN静态路由与配置网络地址转换NAT访问控制列表ACLIP协议与IP地址分类子网掩码网关子网划分总结 计算机网络是指将地理位置不同的、功能独立的多台计算机通过通信线路连接起来&#xff0c;以功…

linux查看日志的几种方式

一、cat命令 1.使用cat命令&#xff1a;通过cat命令可以直接打开并显示文本文件内容&#xff0c;包括日志文件。例如&#xff0c;要查看名为logfile.txt的日志文件&#xff0c;可以运行以下命令&#xff1a;cat logfile.txt 常用命令&#xff1a;cat -n filename | grep “关键…

echarts地图map鼠标移入区域颜色(渐变)

鼠标移入透明 itemStyle下 emphasis属性 itemStyle: {// # 在未设置dataRange或 visualMap时设置有效normal: {// borderColor: rgba(12, 222, 255, 1),// borderWidth: 0.8,areaColor: {type: linear-gradient,x: 0,y: 300,x2: 0,y2: 0,colorStops: [{offset: 0,color: rg…

Unix进程间通信之简介-总体概述和引子

目录标题 0. 前言1. 概述2. 进程、线程与信息共享3. IPC对象的持续性4. 名字空间5. fork、exec和exit对IPC对象的影响6. 出错处理&#xff1a; 包裹函数7. Unix标准8. 小结 0. 前言 进程间通信这块是学习linux-c编程的关键&#xff0c; 这篇为后续进程间通信技术的引子篇&#…

jdk多版本切换环境变量管理(jdk1.8和jdk17)

jdk多版本切换环境变量管理&#xff08;jdk1.8和jdk17&#xff09; 看了很多网上的博客&#xff0c;根本都不行&#xff0c;我总结出来规律如下&#xff1a; 首先环境变量要配置成这个样子&#xff1a;这些博客都会教你们配 接着配什么classpath&#xff0c;看其他博客就行 还…

Gitee基础知识

目录 1-gitee 1.1gitee介绍 1.2git与gitee的关系 1.3在国内为什么选择Gitee 2-注册与创建远程仓库 2.1注册 2.2创建远程仓库 2.3配置ssh公钥 2.3.1公钥的生成方法&#xff1a; 2.3.2 在gitee中配置公钥 2.3.4验证公钥 3-添加与推送远程仓库master 3.1基本命令…

go mod indirect

在 Go 语言中&#xff0c;"indirect" 标记的 require 子句通常是由 Go 模块系统自动生成的&#xff0c;而不是手动维护的。 当一个模块直接依赖于另一个模块&#xff0c;而后者又依赖于第三个模块时&#xff0c;Go 模块系统会自动检测并生成 "indirect" 标…

【1.9计算机组成与体系结构】总线

目录 1.总线的定义2.总线的分类 1.总线的定义 √ 总线是一组能为多个部件分时共享的公共信息传送线路。 &#x1f535; 共享 &#x1f535; 分时:是指同一时刻仅允许一个部件向总线发送信息&#xff0c;但允许多个部件同时从总线上接收相同的信息。 √ 串行总线 (适合长距离传…

拾陆[16],不带校正描述匹配模板,函数CreateUncalibDescriptorModel/FindUncalibDescriptorModel

函数CreateUncalibDescriptorModel 函数功能 创建一个不带校正透视描述符匹配模板 C形式 LIntExport void CreateUncalibDescriptorModel( const HObject& Template, const HTuple& DetectorType, const HTuple& DetectorParamName, const HTuple& Dete…

软件开发模型(架构师复习资料)

在计算机刚刚诞生的年代&#xff0c;计算机是一种只有天才才能掌握的工具。人们对软件的认知仅仅停留在程序的层面上&#xff0c;所谓的软件开发就是那些能够掌握计算机的天才们写的一些只有计算机才能理解的二进制序列。但随着技术的发展&#xff0c;软件的复杂度不断提高&…

1.0 ROS 主环境安装 VS 虚拟环境安装

1. ROS 主环境安装 VS 虚拟环境安装 1.1主环境安装 直接安装&#xff1a;ROS Melodic Morenia通常直接安装在Ubuntu或Debian的主操作系统环境中。这种方法简单直接&#xff0c;且能保证ROS的所有功能都能正常工作。系统级别的改动&#xff1a;在主环境中安装会对整个系统产生…

《ThreadLocal使用与学习总结:2023-12-15》史上最详细由浅入深解析ThreadLocal

由浅入深全面解析ThreadLocal 目录 由浅入深全面解析ThreadLocal简介基本使用ThreadLocal与synchronized的区别ThreadLocal现在的设计&#xff08;JDK1.8&#xff09;ThreadLocal核心方法源码分析ThreadLocalMap源码分析弱引用与内存泄露&#xff08;内存泄漏和弱引用没有直接关…