代码随想录算法训练营Day30|332.重新安排行程、51. N皇后、37. 解数独

332.重新安排行程

题目链接:332.重新安排行程
文档链接:332.重新安排行程

C++实现

class Solution {
private:unordered_map<string,map<string,int>> targets;bool backtracking(int ticketNum, vector<string>& result) {if(result.size() == ticketNum + 1) return true;for(pair<const string, int>& target :targets[result[result.size() - 1]]){if(target.second > 0 ){result.push_back(target.first);target.second--;if(backtracking(ticketNum, result)) return true;target.second++;result.pop_back();}}return false;}public:vector<string> findItinerary(vector<vector<string>>& tickets) {targets.clear();vector<string> result;for (const vector<string>& vec : tickets) {targets[vec[0]][vec[1]]++;}result.push_back("JFK");backtracking(tickets.size(), result);return result;}
};

51. N皇后

题目链接:51. N皇后
文档链接:51. N皇后
视频链接:这就是传说中的N皇后? 回溯算法安排!| LeetCode:51.N皇后

C++实现

class Solution {
private:vector<vector<string>> result;bool isValid(int row, int col, vector<string>& chessboard, int n) {for (int i = 0; i < row; 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 backtracking(int n, int row, vector<string>& chessboard) {if (row == n) {result.push_back(chessboard);return;}for (int col = 0; col < n; col++) {if (isValid(row, col, chessboard, n)) {chessboard[row][col] = 'Q';backtracking(n, row + 1, chessboard);chessboard[row][col] = '.';}}}public:vector<vector<string>> solveNQueens(int n) {result.clear();vector<string> chessboard(n, string(n,'.'));backtracking(n, 0, chessboard);return result;}
};

37. 解数独

题目链接:37. 解数独
文档链接:37. 解数独
视频链接:回溯算法二维递归?解数独不过如此!| LeetCode:37. 解数独

C++实现

class Solution {
private:bool isValid(int row, int col, char val, vector<vector<char>>& board) {for(int i = 0; i<9;i++){if(board[row][i] == val){return false;}}for(int i = 0; i<9;i++){if(board[i][col]==val){return false;}}int startRow = (row/3)*3;int startCol = (col/3)*3;for(int i = startRow; i<startRow + 3;i++){for(int j = startCol; j<startCol+3;j++){if(board[i][j] == val){return false;}}}return true;}bool backtarcking(vector<vector<char>>& board){for(int i = 0; i<board.size();i++){for(int j = 0; j<board[0].size(); j++){if(board[i][j] == '.'){for(int k = '1'; k<='9';k++){if(isValid(i,j,k,board)){board[i][j] = k;if(backtarcking(board)) return true;board[i][j] = '.';}}return false;}}}return true;}public:void solveSudoku(vector<vector<char>>& board) {backtarcking(board);}
};

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

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

相关文章

怎么制作文件类型二维码?文件二维码如何加密?

现在将文件转二维码图片后&#xff0c;分享生成二维码来扫码查看或者下载文件的方式&#xff0c;在很多的场景中都有应用。这个方法的优势在于&#xff0c;成本低而且安全性高&#xff0c;有利于用户快速获取内容的速度&#xff0c;有效提高用户体验&#xff0c;而且日常使用的…

【Kubernetes】服务(Service)是什么?有什么用?有哪些类型?

系列文章目录 K8s中的Namespace是什么&#xff1f; Kubernetes 集群的组件介绍 Kubernetes 对象是什么&#xff1f; Pod——k8s中最重要的对象之一 Kubernetes 和 Docker 之间有什么区别&#xff1f; 部署安装 K8s 为什么要关闭 swap 分区&#xff1f; k8s中容器之间、pod之间…

ZABBIX修改web界面的 “支持“,“帮助”,“Integrations“。等菜单按钮,百试百灵,删除修改Help,Support菜单

♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ **ZABBIX修改web界面的 “支持”&#xff0c;“帮助”,“Integrations”。等菜单按钮&#xff0c…

基于 Transformer 的中文对联生成器

✅作者简介&#xff1a;人工智能专业本科在读&#xff0c;喜欢计算机与编程&#xff0c;写博客记录自己的学习历程。 &#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&…

javaWeb学习04

AOP核心概念: 连接点: JoinPoint, 可以被AOP控制的方法 通知: Advice 指哪些重复的逻辑&#xff0c;也就是共性功能(最终体现为一个方法) 切入点: PointCut, 匹配连接点的条件&#xff0c;通知仅会在切入点方法执行时被应用 目标对象: Target, 通知所应用的对象 通知类…

模糊PID控制算法实战讲解-案例温度控制(附C语言实现)

可结合之前的文章一起理解&#xff1a; 控制算法-PID算法总结-从公式原理到参数整定解析&#xff08;附C源码&#xff09;_pid自整定算法-CSDN博客 模糊控制算法实战讲解-案例温度控制&#xff08;附C语言实现&#xff09;-CSDN博客 目录 一、模糊PID控制的原理 1.1 模糊化…

边读 Emacs Lisp Intro 边做题(五)

文章目录 边读Emacs Lisp Intro边做题&#xff08;五&#xff09; 边读Emacs Lisp Intro边做题&#xff08;五&#xff09; 打开emacs&#xff0c;按C-h i打开Info页&#xff0c;找到Emacs Lisp Intro。 这里的\\b\\([^ \n\t]\\)[ \n\t]\\1\\b抄自题目描述中提供的链接&#…

Decision Transformer

DT个人理解 emmm, 这里的Transformer 就和最近接触到的whisper一样,比起传统Transformer,自己还设计了针对特殊情况的tokens。比如whisper里对SOT,起始时间,语言种类等都指定了特殊tokens去做Decoder的输入和输出。 DT这里的作为输入的Tokens由RL里喜闻乐见的历史数据:…

Java优先级队列--堆

目录 1. 优先级队列 1.1 概念 2.优先级队列的模拟实现 2.1 堆的概念 2.2 堆的存储方式 2.3 堆的创建 2.3.1 堆向下调整 2.3.2 堆的创建 2.3.3 建堆的时间复杂度 2.4 堆的插入与删除 2.4.1 堆的插入 2.4.2 堆的删除 2.5 用堆模拟实现优先级队列 3.常用接口介绍 3…

Eigen-Block块操作

Block块操作 一、使用块操作二、列和行三、Corner-related操作四、向量的块运算 块是矩阵或数组的矩形部分。块表达式既可以用作右值&#xff0c;也可以用作左值。与通常的Eigen表达式一样&#xff0c;只要让编译器进行优化&#xff0c;这种抽象的运行时成本为零。优化都是自动…

什么是VR紧急情况模拟|消防应急虚拟展馆|VR游戏体验馆加盟

VR紧急情况模拟是利用虚拟现实&#xff08;Virtual Reality&#xff0c;简称VR&#xff09;技术来模拟各种紧急情况和应急场景的训练和演练。通过VR技术&#xff0c;用户可以身临其境地体验各种紧急情况&#xff0c;如火灾、地震、交通事故等&#xff0c;以及应对这些紧急情况的…

贪心算法(算法竞赛、蓝桥杯)--修理牛棚

1、B站视频链接&#xff1a;A27 贪心算法 P1209 [USACO1.3] 修理牛棚_哔哩哔哩_bilibili 题目链接&#xff1a;[USACO1.3] 修理牛棚 Barn Repair - 洛谷 #include <bits/stdc.h> using namespace std; const int N205; int m,s,c,ans; int a[N];//牛的位置标号 int d[N…

奇怪的需求之与图片做交互

1.起因 客户想要展示自己的地图,该地图上有各种工作数据,和工作点位,已有的地图不能满足需求.于是提出将这张图片当成大背景 2.经过 鉴于文件格式和尺寸的原因,协商后客户提出将图片做成缩放效果,同时具有点击效果,原先直接进入的主页,现在为点击图片中的某条线路进入主页面…

Ubuntu tesseract使用全是干货

文字检测 方案 利用opencv二值化处理。最后检测使用google的开源库libtesseract识别文字。 tesseract安装 apt install libtesseract-dev # 前面那个是英文&#xff0c;后面那个是中文 apt install tesseract-oct tesseract-ocr-chi-sim手册 手册 qt creator中使用 pro文…

[LeetCode]143.重排链表

143. 重排链表 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/reorder-list/description/ 题目 示例 解题思路 寻找链表中点 链表逆序 合并链表 注意到目标链表即为将原链表的左半端和反转后的右半端合并后的结果。 这样我们的任务即可划分为三步&a…

Redis 8种基本数据类型及常用命令和数据类型的应用场景

小伙伴们好&#xff0c;欢迎关注&#xff0c;一起学习&#xff0c;无限进步 文章内容为学习的一些笔记及工作中遇到的一些问题 文章目录 Redis 五大数据类型keyStringListSetHashSorted Set 三种特殊类型Geospatial 地理位置HyperloglogBitmap Redis 五大数据类型 redis 官方网…

Python中的os库

一.OS库简介 OS是Operating System的简写&#xff0c;即操作系统。 OS库是一个操作系统接口模块&#xff0c;提供一些方便使用操作系统相关功能的函数。 二.OS库常用函数 2.1文件和目录 2.1.1&#xff1a;os.getcwd() 作用&#xff1a;返回当前工作目录&#xff0c;结果是…

Python中re(正则)模块的使用

re 是 Python 标准库中的一个模块&#xff0c;用于支持正则表达式操作。通过 re 模块&#xff0c;可以使用各种正则表达式来搜索、匹配和操作字符串数据。 使用 re 模块可以帮助在处理字符串时进行高效的搜索和替换操作&#xff0c;特别适用于需要处理文本数据的情况。 # 导入…

怎样把python字符串中的emoji表情包去掉或忽略?

要从Python字符串中去掉或忽略表情符号&#xff0c;可以使用正则表达式来过滤掉所有的Unicode码点大于\uFFFF的字符。这些字符通常是表情符号。 以下是一个示例代码&#xff1a; import redef remove_emojis(text):emoji_pattern re.compile("["u"\U0001F600…

如何在Window系统部署BUG管理软件并结合内网穿透实现远程管理本地BUG

文章目录 前言1. 本地安装配置BUG管理系统2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射本地服务3. 测试公网远程访问4. 配置固定二级子域名4.1 保留一个二级子域名5.1 配置二级子域名6. 使用固定二级子域名远程 前言 BUG管理软件,作为软件测试工程师的必备工具之一。在…