发布时间:2026/9/1 7:46:34
LeetCode--51. N皇后(回溯算法) 51. 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代码classSolution{// 存放最终结果// 每一个 ListString 表示一种棋盘摆放方案ListListStringresultnewArrayList();// 当前棋盘路径// 每个 String 表示棋盘的一行ListStringpathnewArrayList();/** * 判断当前位置是否可以放皇后 * * param n 棋盘大小 * param row 当前行 * param column 当前列 * param chessboard 当前棋盘 */publicbooleanisValid(intn,introw,intcolumn,char[][]chessboard){/** * 检查同行、同列是否有皇后 */for(inti0;irow;i){// 纵向检查if(chessboard[i][column]Q)returnfalse;}/** * 检查主对角线\ */// 左上方向introw1row;intcolumn1column;while(row1--0column1--0){if(chessboard[row1][column1]Q)returnfalse;}/** * 检查副对角线/ */// 右上方向row1row;column1column;while(row1--0column1n-1){if(chessboard[row1][column1]Q)returnfalse;}// 当前位置合法returntrue;}/** * 回溯函数 * * param n 棋盘大小 * param row 当前处理到第几行 * param chessboard 当前棋盘状态 */publicvoidbacktracking(intn,introw,char[][]chessboard){/** * 终止条件 * * row n * 说明前 n 行已经全部放置完成 */if(rown){// 保存当前方案result.add(newArrayList(path));return;}/** * 枚举当前行的每一列 */for(inti0;in;i){/** * 判断当前位置是否合法 */if(isValid(n,row,i,chessboard)){// 放置皇后chessboard[row][i]Q;// 当前行加入路径path.add(newString(chessboard[row]));// 递归下一行backtracking(n,row1,chessboard);// 回溯移除皇后chessboard[row][i].;// 删除当前行path.remove(path.size()-1);}}}publicListListStringsolveNQueens(intn){/** * 初始化棋盘 * * . 表示空位 */char[][]chessboardnewchar[n][n];for(inti0;in;i){for(intj0;jn;j){chessboard[i][j].;}}// 从第0行开始回溯backtracking(n,0,chessboard);returnresult;}}

相关新闻

2026/8/31 10:22:14

AI视频修复技术:从原理到实践的老视频高清化指南

这次我们来看一个经典视频修复项目——张国荣1984年十大劲歌金曲现场的高清修复版本。这个修复作品最值得关注的是在保持原视频韵味的同时实现了清晰度的大幅提升,让经典舞台重现光彩。对于喜欢怀旧经典、需要处理老视频素材的用户来说,这种修复技术非常…

2026/8/31 6:36:53

康奈尔 CS3110 数据结构与函数式编程讲义(四)

http://adam.chlipala.net/cpdt/* * *索引* * *本页由[coqdoc](http://www.lix.polytechnique.fr/coq/)生成。# 渐近复杂性的回顾* * *<menu>* 渐近分析* 最坏情况和平均情况分析* 增长顺序和大 O 符号* 比较增长顺序* 二叉搜索树* 练习</menu>* * *##…

2026/9/1 7:46:08

亲手实现Transformer核心:注意力机制从原理到PyTorch代码

为什么我把"看懂的"Transformer又亲手写了一遍Transformer 这个词&#xff0c;在深度学习圈子里几乎被说烂了。从 NLP 到 CV&#xff0c;从推荐系统到多模态&#xff0c;随处可见它的影子。但很多时候&#xff0c;我们看完了各种图解、听完了各种原理讲解&#xff0c…

2026/9/1 7:46:08

使用窗口函数

在复杂数据分析、报表统计、排名计算等场景中经常使用。窗口函数是 SQL 中非常强大的功能&#xff0c;可以在不改变行数的情况下对每一行进行计算&#xff0c;同时保留原始数据。 下面我从核心概念、语法结构、常用函数分类、实战案例、性能优化几个维度来系统说明。&#x1f3…

2026/9/1 7:46:08

《雾雾恋综》本地大模型驱动的剧本文案生产线搭建指南

《雾雾恋综》这个项目&#xff0c;第一眼看上去更像一部网文或者短剧选题&#xff1a;双女主、恋综、悬念感。但真正让我感兴趣的是&#xff0c;它能不能不再靠人工逐段憋稿&#xff0c;而是变成一条可由本地大模型驱动的剧本文案生产线。这篇文章就围绕这个题材&#xff0c;拆…

2026/9/1 7:46:08

基于AT89C51与Proteus仿真的多功能电子琴设计与实现

简介&#xff1a;本资源是一套基于AT89C51单片机的C语言多功能电子琴系统完整开发包&#xff0c;面向嵌入式初学者、单片机课程设计学生及Proteus仿真爱好者&#xff0c;解决从硬件建模、音阶生成到人机交互实现的一体化实践难题。压缩包共23个文件&#xff0c;含4个C源码&…

2026/9/1 7:46:08

COC跑团熟肉制作全指南:从音轨提取到硬字幕压制

说到 COC 跑团视频里的“熟肉”&#xff0c;很多观众的第一印象是字幕菌真伟大&#xff0c;第二印象可能就是&#xff1a;这个视频怎么还不更新&#xff1f;实际做过熟肉的人才会明白&#xff0c;最折磨人的往往不是翻译本身&#xff0c;而是从生肉到熟肉这条工具链上随时可能冒…

2026/9/1 7:41:08

QCustomPlot极坐标图叠加普通曲线:坐标转换与混合绘制实践

简介&#xff1a;Mathimge_Plot是一款专为DELPHI开发者设计的曲线图控件&#xff0c;支持绘制直线、曲线、函数图像、散点图与3D图形&#xff0c;适合科学计算、数据分析和工程应用场景&#xff0c;可灵活调整颜色、线型、标记样式等细节。压缩包共125个文件&#xff0c;仅394K…

2026/8/31 1:05:20

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出&#xff0c;第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器&#xff0c;出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台&#xff0c;直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/8/31 2:14:20

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流&#xff1a;为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历&#xff1a;明明传感器本身性能很好&#xff0c;信号输出却一塌糊涂——噪声大、漂移明显、重复性差&#xff0c;怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/9/1 7:04:43

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起&#xff0c;其实就是嵌入式开发里最常遇到的一类需求&#xff1a;用一块不算贵的 MCU&#xff0c;同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控&#xff0c;主频…

2026/9/1 0:00:42

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行&#xff0c;Type-C接口算是典型的“看着简单&#xff0c;做起来全坑”的东西。光引脚就24个&#xff0c;高低速信号、电源、控制线全部塞在一个小小的连接器里&#xff0c;如果PCB布局不做规划&#xff0c;打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/1 0:00:42

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/1 0:00:42

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

2026/9/1 0:00:42

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行&#xff0c;Type-C接口算是典型的“看着简单&#xff0c;做起来全坑”的东西。光引脚就24个&#xff0c;高低速信号、电源、控制线全部塞在一个小小的连接器里&#xff0c;如果PCB布局不做规划&#xff0c;打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/1 0:00:42

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/1 0:00:42

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…