个人建网站做站长/大数据营销精准营销

个人建网站做站长,大数据营销精准营销,网站建设排行公司,网站建设 中企动力南通解法一:(基于集合的回溯)我们从第一行开始寻找,找每一行皇后应该放在第几列。每次找到都用Set记录已经用过的列和对角,其中从左到右向下的对角(行-列相同),右到左向下的对角&#xf…

解法一:(基于集合的回溯)我们从第一行开始寻找,找每一行皇后应该放在第几列。每次找到都用Set记录已经用过的列和对角,其中从左到右向下的对角(行-列相同),右到左向下的对角(行+列相同)。

class Solution {public List<List<String>> solveNQueens(int n) {// 我们从第一行开始寻找,找每一行皇后应该放在第几列List<List<String>> result = new ArrayList<List<String>>();int[] queue = new int[n]; // queue[i]表示第i行的皇后放在第queue[i]列Set<Integer> columes = new HashSet<>(); // 用于登记已经用了哪一列Set<Integer> diagonal1 = new HashSet<>(); // 用于登记已经用了哪从左到右向下的对角(行-列相同)Set<Integer> diagonal2 = new HashSet<>(); // 用于登记已经用了哪从右到左向下的对角(行+列相同)backtrace(result, queue, n, 0, columes, diagonal1, diagonal2); // 0表示从第0行开始找return result;}public void backtrace(List result, int[] queue, int n, int row, Set columes, Set diagonal1, Set diagonal2){if(row == n){List<String> temp = generateResult(queue, n);result.add(temp);return;}// 找row行皇后应该放哪:应该循环每一列for(int col=0; col<n; col++){if(columes.contains(col)){// 这一列已经存在了continue; // return;}if(diagonal1.contains(row-col)){// 这一对角已经存在了continue; // return;}if(diagonal2.contains(row+col)){// 这一对角已经存在了continue; // return;}// 找到列+两对角都不存在的列columes.add(col);diagonal1.add(row-col);diagonal2.add(row+col);queue[row] = col;backtrace(result, queue, n, row+1, columes, diagonal1, diagonal2);// 回溯columes.remove(col);diagonal1.remove(row-col);diagonal2.remove(row+col);queue[row] = -1;}}public List<String> generateResult(int[] queue, int n){List<String> temp = new ArrayList<String>();for(int i=0; i<n; i++){char[] charTemp = new char[n];Arrays.fill(charTemp, '.');charTemp[queue[i]] = 'Q';temp.add(new String(charTemp));}return temp;}
}

注意:

  • queue[i]表示第i行的皇后放在第queue[i]
  • 从左到右向下的对角(行-列相同),右到左向下的对角(行+列相同)
  • Arrays.fill(charTemp, '.')表示用 '.' 填充charTemp数组

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

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

相关文章

面试常问系列(一)-神经网络参数初始化

一、背景 说到参数初始化&#xff0c;先提一下大家常见的两个概念梯度消失和梯度爆炸。 &#xff08;一&#xff09;、梯度消失&#xff1a;深层网络的“静默杀手” 定义&#xff1a; 在反向传播过程中&#xff0c;梯度值随着网络层数增加呈指数级衰减&#xff0c;最终趋近…

(学习总结29)Linux 进程概念和进程状态

Linux 进程概念 冯诺依曼体系结构软件运行与存储分级数据流动的理论过程 操作系统操作系统(Operator System) 概念操作系统的功能与作用系统调用和库函数概念 进程概念描述进程 - PCBtask_struct查看进程通过系统调用获取进程标示符 PID通过系统调用 fork 函数创建进程简单使用…

Wi-Fi NAN 架构(Wi-Fi Aware Specification v4.0,第2章:2.3~2.6)

1. NAN 数据通信架构 1.1 单播支持 要在两个NAN设备之间启动单播数据通信&#xff0c;服务需发起一个NAN数据路径&#xff08;NDP&#xff0c;NAN Data Path&#xff09;请求。这对NAN设备之间会建立一个NAN设备链路&#xff08;NDL&#xff0c;NAN Device Link&#xff09;&…

Lineageos 22.1(Android 15)实现负一屏

一、前言 方案是参考的这位大佬的&#xff0c;大家可以去付费订阅支持一波。我大概理一下Android15的修改。 大佬的方案代码 二、Android15适配调整 1.bp调整&#xff0c;加入aidl引入&#xff0c;这样make之后就可以索引代码了 filegroup {name: "launcher-src"…

Java 大视界 -- Java 大数据在智能医疗远程会诊与专家协作中的技术支持(146)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…

练习:运动计划

需求&#xff1a;键盘录入星期数&#xff0c;显示今天的减肥活动。 周一&#xff1a;跑步&#xff1b; 周二&#xff1a;游泳&#xff1b; 周三&#xff1a;慢走&#xff1b; 周四&#xff1a;骑动感单车&#xff1b; 周五&#xff1a;拳击&#xff1b; 周六&#xff1a;…

《TCP/IP网络编程》学习笔记 | Chapter 20:Windows 中的线程同步

《TCP/IP网络编程》学习笔记 | Chapter 20&#xff1a;Windows 中的线程同步 《TCP/IP网络编程》学习笔记 | Chapter 20&#xff1a;Windows 中的线程同步用户模式和内核模式用户模式同步内核模式同步 基于 CRITICAL_SECTION 的同步内核模式的同步方法基于互斥量对象的同步基于…

VBA-Excel

VBA 一、数据类型与变量 常用数据类型&#xff1a; Byte&#xff1a;字节型&#xff0c;0~255。Integer&#xff1a;整数型&#xff0c;用于存储整数值&#xff0c;范围 -32768 到 32767。Long&#xff1a;长整型&#xff0c;可存储更大范围的整数&#xff0c;范围 -214748364…

PairRE: Knowledge Graph Embeddings via Paired Relation Vectors(论文笔记)

CCF等级&#xff1a;A 发布时间&#xff1a;2020年11月 25年3月24日交 目录 一、简介 二、原理 1.整体 2.关系模式 3.优化模型 三、实验性能 四、结论和未来工作 一、简介 将RotatE进行生级&#xff0c;RotatE只对头实体h进行计算&#xff0c;PairRE对头尾实体都进行…

从报错到成功:Mermaid 流程图语法避坑指南✨

&#x1f680; 从报错到成功&#xff1a;Mermaid 流程图语法避坑指南 &#x1f680; &#x1f6a8; 问题背景 在开发文档或技术博客中&#xff0c;我们经常使用 Mermaid 流程图 来可视化代码逻辑。但最近我在尝试绘制一个 Java Stream 转换流程图时&#xff0c;遭遇了以下报错…

Android10 系统截屏功能异常的处理

客户反馈的问题&#xff0c;设备上使用状态栏中“长截屏”功能&#xff0c;截屏失败且出现系统卡死问题。 在此记录该问题的处理 一现象&#xff1a; 设备A10上使用系统“长截屏”功能&#xff0c;出现截屏失败&#xff0c;系统死机。 二复现问题并分析 使用设备操作该功能&…

ENSP学习day9

ACL访问控制列表实验 ACL&#xff08;Access Control List&#xff0c;访问控制列表&#xff09;是一种用于控制用户或系统对资源&#xff08;如文件、文件夹、网络等&#xff09;访问权限的机制。通过ACL&#xff0c;系统管理员可以定义哪些用户或系统可以访问特定资源&#x…

JVM的组成--运行时数据区

JVM的组成 1、类加载器&#xff08;ClassLoader&#xff09; 类加载器负责将字节码文件从文件系统中加载到JVM中&#xff0c;分为&#xff1a;加载、链接&#xff08;验证、准备、解析&#xff09;、和初始化三个阶段 2、运行时数据区 运行时数据区包括&#xff1a;程序计数…

RAG(Retrieval-Augmented Generation)基建之PDF解析的“魔法”与“陷阱”

嘿&#xff0c;亲爱的算法工程师们&#xff01;今天咱们聊一聊PDF解析的那些事儿&#xff0c;简直就像是在玩一场“信息捉迷藏”游戏&#xff01;PDF文档就像是个调皮的小精灵&#xff0c;表面上看起来规规矩矩&#xff0c;但当你想要从它那里提取信息时&#xff0c;它就开始跟…

Python网络编程入门

一.Socket 简称套接字&#xff0c;是进程之间通信的一个工具&#xff0c;好比现实生活中的插座&#xff0c;所有的家用电器要想工作都是基于插座进行&#xff0c;进程之间要想进行网络通信需要Socket&#xff0c;Socket好比数据的搬运工~ 2个进程之间通过Socket进行相互通讯&a…

mac calDAV 日历交互

安装Bakal docker https://sabre.io/dav/building-a-caldav-client/ 在Bakal服务器上注册账户 http://localhost:8080/admin/?/users/calendars/user/1/ 在日历端登录账户&#xff1a; Server: http://127.0.0.1:8080/dav.php Server Path: /dav.php/principals/lion No e…

Python设计模式 - 适配器模式

定义 适配器模式&#xff08;Adapter Pattern&#xff09;是一种结构型设计模式&#xff0c;它用于将一个类的接口转换为客户端所期待的另一个接口。 注&#xff1a;在适配器模式定义中所提及的接口是指广义的接口&#xff0c;它可以表示一个方法或者一组方法的集合。 结构 …

【前端工程化】

目录 前端工程户核心技术之模块化前端模块化的进化过程commonjs规范介绍commonjs规范示例commonjs模块打包 amd规范、cmd规范前端工程化关键技术之npmwebpack原理 前端工程户核心技术之模块化 前端模块化是一种标准&#xff0c;不是实现。commonjs是前端模块化的标准&#xff…

T113-i开发板的休眠与RTC定时唤醒指南

​​在嵌入式系统设计中&#xff0c;休眠与唤醒技术是优化电源管理、延长设备续航的关键。飞凌嵌入式基于全志T113-i处理器开发设计的OK113i-S开发板提供了两种休眠模式&#xff1a;freeze和mem&#xff0c;以满足不同应用场景下的功耗与恢复速度需求。本文将详细介绍如何让OK1…

SpringBoot项目实战(初级)

目录 一、数据库搭建 二、代码开发 1.pom.xml 2.thymeleaf模块处理的配置类 3.application配置文件 4.配置&#xff08;在启动类中&#xff09; 5.编写数据层 ②编写dao层 ③编写service层 接口 实现类 注意 补充&#xff08;注入的3个注解&#xff09; 1.AutoWir…