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

n皇后问题,不用递归

注释如下:

class Solution:def totalNQueens(self, n: int) -> int:if n < 1:  # 如果 n 小于 1,直接返回 0return 0count = 0  # 初始化解的个数为 0stack = [(0, set(), set(), set())]  # 初始化一个栈,元素为当前处理的行数、已经放置皇后的列数、左上到右下的对角线和、右上到左下的对角线和while stack:  # 如果栈不为空row, cols, xy_diff, xy_sum = stack.pop()  # 取出栈顶元素if row == n:  # 如果已经处理完 n 行,解的个数加 1,继续处理下一个count += 1continuefor col in range(n):  # 遍历当前行的每一列if col in cols or row - col in xy_diff or row + col in xy_sum:  # 如果当前列已经被占据,或者在左上到右下的对角线或右上到左下的对角线上continue  # 跳过这一列stack.append((row+1, cols | {col}, xy_diff | {row-col}, xy_sum | {row+col}))  # 否则,将当前行数加一、已占据列数加上当前列、左上到右下的对角线和加上当前元素、右上到左下的对角线和加上当前元素的元组入栈return count  # 返回解的个数

算法步骤:

  1. 如果输入的 n 小于 1,则直接返回 0;
  2. 初始化解的个数为 0,初始化一个栈,元素为当前处理的行数、已经放置皇后的列数、左上到右下的对角线和、右上到左下的对角线和;
  3. 当栈不为空时,取出栈顶元素,如果已经处理完 n 行,解的个数加 1,继续处理下一个;
  4. 遍历当前行的每一列,如果当前列已经被占据,或者在左上到右下的对角线或右上到左下的对角线上,则跳过这一列;
  5. 否则,将当前行数加一、已占据列数加上当前列、左上到右下的对角线和加上当前元素、右上到左下的对角线和加上当前元素的元组入栈;
  6. 返回解的个数。

相关文章:

n皇后问题,不用递归

注释如下&#xff1a; class Solution:def totalNQueens(self, n: int) -> int:if n < 1: # 如果 n 小于 1&#xff0c;直接返回 0return 0count 0 # 初始化解的个数为 0stack [(0, set(), set(), set())] # 初始化一个栈&#xff0c;元素为当前处理的行数、已经放…...

Verilog基础:$fopen和$fclose系统函数、任务的使用

相关阅读 Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html?spm1001.2014.3001.5482 $fopen和$fclose是两个用于打开和关闭文件的系统函数、任务。最初&#xff0c;在Verilog-1995标准中&#xff0c;最多只能同时打开32个文件&#xff0c;其所使用的…...

python之字典的用法

python之字典的用法 Python中的字典是一种无序、可变、可迭代的数据类型&#xff0c;它由键值对组成&#xff0c;每个键都映射到一个值。字典在Python中被视为可变对象&#xff0c;这意味着我们可以随时更新、添加或删除字典中的键值对。 以下是一些关于Python字典的基本用法&a…...

Leetcode1971. 寻找图中是否存在路径

Every day a Leetcode 题目来源&#xff1a;1971. 寻找图中是否存在路径 解法1&#xff1a;并查集 并查集介绍&#xff1a;并查集详解 代码&#xff1a; /** lc appleetcode.cn id1971 langcpp** [1971] 寻找图中是否存在路径*/// lc codestart class UnionFind {vector&…...

程序可以创建多少个用户界面对象?

有人提到这样一个问题&#xff1a;”一个程序最多可以注册多少个窗口类?” 问题的答案不是一个具体的数字。因为大多数用户界面对象都来自一个共享的内存池&#xff0c;我们称之为”桌面堆内存”。尽管我们可以计算一个最大的理论值&#xff0c;但是在实际的场景中&#xff0…...

业绩不俗,毛利率下滑,股价接连下跌,片仔癀将向何处去?

撰稿|行星 来源|贝多财经 10月16日&#xff0c;中药龙头企业漳州片仔癀药业股份有限公司&#xff08;600436.SH&#xff0c;下称“片仔癀”&#xff09;发布截至9月30日的2023年前三季度业绩报告。发布财报后&#xff0c;片仔癀的股价多日下跌。 10月17日、18日、19日和20日…...

云安全—docker容器镜像检测

0x00 前言 docker镜像是属于整个云原生的重要基石之一&#xff0c;如果从镜像开始就没有安全性的话&#xff0c;那么整个云原生也就没有任何的安全性可言。所以镜像检测技术就成为了一个比较重要的点&#xff0c;本篇将通过研究docker镜像工具来整体分析风险以及应对方案。 市…...

JDBC相关记录

JDBC&#xff1a;Java DadaBase Connectivity 即Java语言连接数据库。 本质&#xff1a;JDBC是SUN公司制定的一套接口&#xff08;interface&#xff09;。 作用&#xff1a;不同的数据库有自己独特设计原理&#xff0c;JDBC的可以让Java程序员关注业务本身&#xff0c;而不需要…...

Nginx的基本介绍 安装 配置文件 日志

一、Nginx介绍二、nginx的优点三、多路复用1、I/O multiplexing 多并发 四、nginx内部技术架构五、安装NginxNginx部署-yum安装获取Nginx的yum源yum安装Nginx浏览器访问 编译安装Nginx安装编译环境安装依赖环境创建nginx用户安装nginx启动nginx实现nginx开机自启&#xff08;脚…...

docker部署nginx并设置挂载

前言&#xff1a; 最近在学习docker和nginx&#xff0c;因为容器在运行过程中&#xff0c;相关的配置文件及日志都会存在容器内。对容器以来较高&#xff0c;当容器不存在的时候。所有的文件也就都没有了。并且当需要查看日志&#xff0c;修改配置文件的时候必须进入到容器内部…...

MAC如何在根目录创建文件

在这之前先明确一下啥是根目录。 打开终端&#xff0c;输入cd /&#xff0c;然后输入 ls 查看根目录下有哪些文件 可以看到 usr、etc、opt 这些文件的地方才叫根目录&#xff0c;而不是以用户命名&#xff0c;可以看到音乐、应用程序、影片、桌面的地方哈 介绍一种叫做软连接…...

某全球领先的芯片供应商:优化数据跨网交换流程,提高安全管控能力

1、客户介绍 某全球领先的芯片供应商&#xff0c;成立于2005年&#xff0c;总部设于北京&#xff0c;在国内上海、深圳、合肥等地及国外多个国家和地区均设有分支机构和办事处&#xff0c;致力于为客户提供更优质、便捷的服务。 2、建设背景 该公司基于网络安全管理的需求&am…...

自然语言处理---文本预处理概述

自然语言处理&#xff08;Natural Language Processing&#xff0c;简称NLP&#xff09;是计算机科学与语言学中关注于计算机与人类语言间转换的领域。其主要应用于&#xff1a;语音助手、机器翻译、搜索引擎、智能问答等。 文本预处理概述 文本语料在输送给模型前一般需要一…...

GCC编译器 什么是宏? 标识符和关键字

一.GCC是什么&#xff1f; GCC是用于编译C语言和其它语言的开源软件。 全称是 GNU Compiler Collection&#xff0c;意思是GNU编译器集和。 支持多种操作系统和硬件平台。二.GCC的作用 GCC的作用是将源码转换为可执行的文件&#xff0c;使之可以在计算机上运行。三.GCC编译c文…...

【GESP】2023年06月图形化三级 -- 自幂数判断

文章目录 自幂数判断【题目描述】【输入描述】【输出描述】【参考答案】其他测试用例 自幂数判断 【题目描述】 自幂数是指N位数各位数字N次方之和是本身&#xff0c;如153是3位数&#xff0c;其每位数的3次方之和是153本身&#xff0c;因此153是自幂数&#xff0c;1634是4位数…...

MySQL常见面试题

一、存储引擎相关 &#xff08;1&#xff09;MySQL 支持哪些存储引擎? MySQL支持多种存储引擎&#xff0c;比如InnoDB&#xff0c;MyISAM&#xff0c; MySQL大于等于5.5之后&#xff0c;默认存储引擎是InnoDB &#xff08;2&#xff09;InnoDB 和 MyISAM 有什么区别? InnoD…...

前端HTML CSS JS风格规范

本文代码规范来自HTML/CSS代码开发规范文档 文件命名规范 使用小写字母、数字和下划线组成文件名。 避免使用特殊字符和空格。 使用语义化的命名&#xff0c;能够清晰地表达出文件的功能或内容。 目录结构规范 使用约定俗成的目录结构&#xff0c;如&#xff1a;src/compon…...

为什么spring默认采用单例bean

概 述 熟悉 Spring开发的朋友都知道 Spring 提供了 5种 scope&#xff0c;分别是&#xff1a; singleton: 单例模式&#xff0c;当spring创建applicationContext容器的时候&#xff0c;spring会欲初始化所有的该作用域实例&#xff0c;加上lazy-init就可以避免预处理&#xf…...

Redisson分布式锁学习

之前工作中一直使用redis来实现分布式锁&#xff0c;但是最近项目使用了云弹性&#xff0c;机器会涉及到扩缩容&#xff0c;涉及到优雅停机的问题&#xff0c;普通的redis分布锁&#xff0c;一般使用时会设置锁的时间&#xff0c;但是如果在加锁期间 JVM异常重启等发生会导致分…...

Metabase:简单快捷的商业智能与数据分析工具 | 开源日报 No.61

moby/moby Stars: 66.8k License: Apache-2.0 Moby 是一个由 Docker 创建的开源项目&#xff0c;旨在实现和加速软件容器化。它提供了工具包组件的“乐高集”&#xff0c;可以将它们组装成基于容器的自定义系统的框架。组件包括容器生成工具、容器注册表、业务流程工具、运行时…...

SPIRAN ART SUMMONER应用场景:虚拟偶像运营团队的内容视觉统一生成方案

SPIRAN ART SUMMONER应用场景&#xff1a;虚拟偶像运营团队的内容视觉统一生成方案 1. 引言&#xff1a;虚拟偶像的视觉挑战与机遇 想象一下&#xff0c;你是一个虚拟偶像运营团队的负责人。每天&#xff0c;你需要为偶像的社交媒体账号更新头像、发布宣传海报、制作直播背景…...

深度拆解OpenAI Codex组织架构:这才是真正的AI-native团队!

很多时候&#xff0c;一个产品之所以有独特的气质&#xff0c;往往不是偶然的。它通常来自团队自己的工作方式&#xff0c;来自组织内部的决策逻辑&#xff0c;来自他们如何分工、如何协作、如何推进事情。在这一轮 AI 编程产品竞争里&#xff0c;Codex 是少数让我明显感受到“…...

SeaTunnel + SeaTunnel-Web 安装部署

下载SeaTunnel-Web 下载seatunnel-web安装包&#xff0c;安装包的版本在RENAME.md中有介绍。根据对应的版本号下载相应的软件包 https://mirrors.aliyun.com/apache/seatunnel/seatunnel-web/1.0.2/?spma2c6h.25603864.0.0.42d217c3AzltQh下载SeaTunnel 下载seatunnel安装包&a…...

AI Agent求职被拒最常见的原因是什么

这些实际上更像工程问题&#xff0c;公司愿意给30k月薪的原因就在这里&#xff0c;Agent开发不是玩具技术人&#xff0c;是能把玩具变成生产力的人。这环节最直接有效的方法就是跟着项目完整走一遍&#xff0c;如果你无从下手&#xff0c;趁着有大佬带队&#xff0c;你直接跟着…...

普通人用基础C语言从零搭建NES模拟器,背后藏着这些局限

一、普通人觉得遥不可及&#xff0c;他用基础C语言做到了好多人一提到NES模拟器&#xff0c;首先就会觉得那是只有专业大佬才做得来的&#xff0c;不是依靠现成框架去拼接&#xff0c;就是凭借复杂技术去累计&#xff0c;普通人想要从零基础开始上手&#xff0c;根本就是不可能…...

从零构建pix2pix训练集:数据准备与预处理实战

1. 理解pix2pix的数据需求 pix2pix作为经典的图像到图像转换模型&#xff0c;对训练数据有着特殊的要求。我第一次接触这个模型时&#xff0c;最头疼的就是数据准备环节。与普通分类任务不同&#xff0c;pix2pix需要的是成对的图像数据——简单说就是每张输入图片都要有对应的目…...

终极指南:如何使用node-opencv实现高效光流算法与运动跟踪

终极指南&#xff1a;如何使用node-opencv实现高效光流算法与运动跟踪 【免费下载链接】node-opencv OpenCV Bindings for node.js 项目地址: https://gitcode.com/gh_mirrors/no/node-opencv node-opencv是一个强大的OpenCV Bindings for node.js库&#xff0c;它为Jav…...

海南大学交友平台开发实战 day10(后端向前端输出_前端读取数据全流程联调+日志调试落地)

海南大学交友平台开发实战 day10&#xff08;后端向前端输出/前端读取数据全流程联调日志调试落地&#xff09; 大家好&#xff0c;欢迎来到海南大学交友平台开发实战系列的第十天&#xff01;在前九天的开发中&#xff0c;我们已完成登录注册、UI 布局、Flask 后端基础搭建、S…...

Win10+VS2019配置vcpkg:从安装到项目集成的完整指南

1. 初识vcpkg&#xff1a;C开发者的效率神器 第一次接触vcpkg是在2018年接手一个跨平台C项目时&#xff0c;当时被各种第三方库的编译依赖折磨得够呛。vcpkg就像黑暗中的一束光&#xff0c;彻底改变了我的开发体验。简单来说&#xff0c;vcpkg是微软开源的C包管理工具&#xf…...

保姆级入门:像素幻梦创意工坊,小白也能玩转AI像素艺术

保姆级入门&#xff1a;像素幻梦创意工坊&#xff0c;小白也能玩转AI像素艺术 1. 认识像素幻梦创意工坊 1.1 什么是像素幻梦创意工坊 像素幻梦创意工坊是一款基于FLUX.1-dev扩散模型构建的AI像素艺术生成工具。它采用了独特的16-bit像素工坊视觉设计&#xff0c;为用户提供了…...