leetcode 52. N 皇后 II

news2024/11/22 21:04:19

2023.9.10

        本题是皇后问题的变式,让求出不同解决方案的数量,和之前做过的 N皇后 基本一样,最终返回ans里棋盘的数量即可。  

        当复习一下皇后问题了,代码如下:

class Solution {
private:
    vector<vector<string>> ans;
    //判断当前皇后落点是否合理
    bool is_valid(vector<string>&chessboard,int row,int col,int n)
    {
        //正上方
        for(int i=row-1; i>=0; i--)
        {
            if(chessboard[i][col] == 'Q') return false;
        }
        //左上方
        for(int i=row-1,j=col-1; i>=0&&j>=0; i--,j--)
        {
            if(chessboard[i][j] == 'Q') return false;
        }
        //右上方
        for(int i=row-1,j=col+1; i>=0&&j<n; i--,j++)
        {
            if(chessboard[i][j] == 'Q') return false;
        }
        return true;
    }
    void backtrack(vector<string>&chessboard,int row,int n)
    {
        if(row == n)
        {
            ans.push_back(chessboard);
            return;
        }
        for(int col=0; col<n; col++)
        {
            if(is_valid(chessboard,row,col,n))
            {
                chessboard[row][col] = 'Q';
                backtrack(chessboard,row+1,n);
                chessboard[row][col] = '.';
            }
        }
    }
public:
    int totalNQueens(int n) {
        vector<string> chessboard(n,string(n,'.'));
        backtrack(chessboard,0,n);
        return ans.size();
    }
};

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

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

相关文章

无涯教程-JavaScript - AMORDEGRC函数

描述 AMORDEGRC函数返回每个会计期间的折旧。此功能是为法国会计系统提供的。如果在会计期间的中间购买资产,则会考虑按比Example折旧。 该功能类似于AMORLINC,不同之处在于,根据资产的寿命在计算中使用了折旧系数。 语法 AMORDEGRC (cost, date_purchased, first_period, …

SAP MM学习笔记29 - 供给元(供货源)的Block(拉黑)

前面学习了 供给元 的知识。 可以参考如下的URL SAP MM学习笔记28- 供给元&#xff08;供货源&#xff09;决定_东京老树根的博客-CSDN博客 有时候还有什么业务需求呢&#xff1f;就是比如突发要拉黑某个供应商 或 拉黑某个供应商的某个产品&#xff0c; 那又该如何做呢&…

202331读书笔记|《我笨拙地爱着这个世界(“外卖诗人”王计兵自选集)》——脚在泥泞,心有繁花

202331读书笔记|《我笨拙地爱着这个世界&#xff08;“外卖诗人”王计兵自选集&#xff09;》——脚在泥泞&#xff0c;心有繁花 《我笨拙地爱着这个世界&#xff08;“外卖诗人”王计兵自选集&#xff09;》作者王计兵。这是读的他的第二本书&#xff0c;比较有烟火气&#xf…

Spring Messaging远程命令执行漏洞复现(CVE-2018-1270)

一、漏洞说明 Spring Messaging为Spring框架提供消息支持&#xff0c;用户使用受影响版本的Spring Framework时&#xff0c;允许应用程序通过Spring Messaging模块内存中STOMP代理创建WebSocket。由于selector用SpEL表达式编写&#xff0c;并使用StandardEvaluationContext解析…

springBoot对接Apache POI 实现excel下载和上传

搭建springboot项目 此处可以参考 搭建最简单的SpringBoot项目_Steven-Russell的博客-CSDN博客 配置Apache POI 依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>5.2.2</version> </…

Flink JobManager的高可用配置

背景 在flink执行中&#xff0c;jobManager是一个负责执行流式应用执行和检查点生成的组件&#xff0c;一旦发生故障&#xff0c;那么其负责的所有应用都会被取消&#xff0c;所以我们需要对JobManager配置高可用的模式 JobManager高可用配置 配置JobManager的高可用需要使用…

微信小程序云开发数据懒加载+打破云数据库返回数据条数限制

目录 数据懒加载 打破数据表返回条数限制 数据懒加载 show.wxml <view wx:for="{{Adata}}" wx:key="index" style="padding: 80rpx 10rpx 140rpx;border-bottom: rgb(109, 134, 134) 2px solid;"><view style="margin-left: 20…

Notpad++常用正则表达式替换案例集锦

1、在每行的开头加上单引号 2、在每行的结尾加上单引号 3、“删除”某个关键字之前字符串 原始字符串&#xff1a; 注&#xff1a;仅保留含有"[条件日志]:"之后的内容&#xff0c;“日志:”前面的内容“删除”掉&#xff0c;即替换为“”。 4、“删除”某个关键字…

Discourse 可以支持的存储类型

根据官方的这个主题&#xff1a;Configure an S3 compatible object storage provider for uploads - sysadmin - Discourse Meta Discourse 可以支持很多不同的对象存储。 感觉上是只要和 S3 兼容的基本上都能用。 建议 从对象存储的角度考虑&#xff0c;还是建议使用 S3。…

UG\NX CAM二次开发 设置工序检查体 UF_CAMGEOM_append_items

文章作者:代工 来源网站:NX CAM二次开发专栏 简介: UG\NX CAM二次开发 设置工序检查体 UF_CAMGEOM_append_items 效果: 代码: static int init_proc(UF_UI_selection_p_t select, void* user_data) { int errorCode = 0; int num_triples = 1;//UF_UI_mask_t…

Python学习笔记:导入txt、xlsx文件并做简单函数处理

1.txt文件 1.1路径 file_path "E:\Python Project\temp.txt" with open(file_path) as f:content1 f.read() 导入文件时&#xff0c;如果直接放文件绝对路径上去会报错&#xff0c;这是因为\P是转义字符 所以在绝对路径前面加r可以避免将引号内的内容识别成转义…

视觉识别数字、十字路口和T字路口,巡线于一体的基于openmv的解决方案(2021年电赛f题)

普通二本生&#xff08;大二&#xff09;没获奖&#xff0c;因为驱动方面和视觉协同问题没有做好(驱动方面跑太快&#xff0c;速度降不下来)只跑了最初级的&#xff0c;这个文章就是去记录一下我的成长过程吧。 目录 1.使用神经网络来进行识别2.使用模板匹配来进行识别1.1 将这…

Idea上传gitee注意事项,push reject错误

一、 你在项目所在文件夹的空白处&#xff0c;鼠标右键&#xff0c;点击git bash here 会自动进入该目录下 二、 如果你遇到push reject 输入下面的命令&#xff1a; git pull origin master –allow-unrelated-historiesgit push -u origin master -f再次push就好了。 三、 …

教你怎么爬元气桌面的壁纸和视频

开发语言&#xff1a;我大前端必备的nodejs 看成果先&#xff1a; 这次爬下来的是手机端视频壁纸&#xff0c;共848个视频 -----------------------------------下边正式开始---------------------------------- 1、用fiddler抓包&#xff0c;查看接口地址 接口地址为&#…

springboot~自定义favicon加载问题

影响自定义favicon加载的原因 1、浏览器缓存问题2、由于favicon图标是在一个session会话中&#xff0c;所以需要关闭重开浏览器3、favicon源文件格式问题 1、浏览器缓存问题 清空浏览器缓存&#xff0c;或者是在network请求中停用缓存 2、由于favicon图标是在一个session会话中…

18 矩阵置0

矩阵置0 题解1 首行首列做标志记录&#xff08;原地改数组&#xff09;题解2 位计算 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 提示&#xff1a; m matrix.lengthn matrix[0].length1 …

210. 课程表 II

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;拓扑排序 写在最后 Tag 【拓扑排序】 题目来源 210. 课程表 II 题目解读 在选修某些课程之前需要先学习某些课程&#xff0c;先学习的课程有数组 prerequisites 给出&#xff0c;其中 prerequisites[i] [ai, bi] 表…

机器学习入门教学——交叉验证

1、简介 交叉验证是在机器学习建立模型和验证模型参数时常用的办法&#xff0c;一般被用于评估一个机器学习模型的表现。更多的情况下&#xff0c;我们也用交叉验证来进行模型选择。【注】在训练模型时&#xff0c;为了提高模型的质量&#xff0c;我们会将数据集划分为训练集、…

【算法与数据结构】501、LeetCode二叉搜索树中的众数

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;根据前面几篇文章98、LeetCode验证二叉搜索树、530、LeetCode二叉搜索树的最小绝对差。我们知道二叉搜…

大数据分析案例-基于随机森林算法构建二手房价格预测模型

🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 喜欢大数据分析项目的小伙伴,希望可以多多支持该系列的其他文章 大数据分析案例合集…