代码随想录算法训练营day31|56合并区间,738单调递增的数字,968监控二叉树

星海横流,岁月成碑。转眼之间,算法训练营的进程已经过半,而我也在日复一日的坚持中,找寻到了对算法的热爱。

56 合并区间

这题和前面的射爆气球等题目比较像,难度也不大,都是先按第一个元素排序后,从第一个子数组开始遍历,如果当前的子数组的第二个元素大于后一个数组的第一个元素,就更新right,反之则将当前的left和right存入数组。

738单调递增的数字

这道题如果用暴力解法会TLE,所以需要考虑其它解法。贪心的解法非常巧妙,是从后向前遍历,如果遇到高位数字大于低位数字,就将高位数字-1,同时将所有低位数字都为9.

int i=str.size()-1;
int flag=str.size()-1;
while(i>0){if(str[i-1]>str[i]) {str[i-1]--;flag=i;
}
for(int j=flag;j<str.size();j++){str[j]=9;
}

这道题的另一个难点是int和string类型的相互转化,int转化为string要用to_string函数,string转为int要用stoi函数。

968监控二叉树

这道题就比较难了,是二叉树和贪心的结合。要使摄像头数最少,就是在所有叶子节点都不放摄像头,局部最优是让叶子节点的父节点安装摄像头,全局最优是使摄像头数最少。所以这题需要隔两层放一个摄像头。如何隔两层放一个摄像头呢?这时就需要状态转移公式。考虑用0,1,2来表示不同的状态。0表示没有被检测到,1表示放置摄像头,2表示有被摄像头检测到,然后分类讨论即可。对于空节点,可以用反证法证明要返回的值是2,这样才能保证在叶子结点的父节点放置摄像头。这样遍历还会漏掉一种情况,就是当如下图情况时,根节点的左孩子返回值为2,右孩子返回值也为2,按照这样遍历的方法,根节点返回值为0,就不会在根节点添加摄像头。因此,需要在主函数中对这种情况额外做一个判断

 int minCameraCover(TreeNode* root) {int temp=traversal(root);if(temp==0) res++;return res;}

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

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

相关文章

基于VTX356语音识别合成芯片的智能语音交互闹钟方案

一、方案概述 本方案旨在利用VTX356语音识别合成芯片强大的语音处理能力&#xff0c;结合蓝牙功能、APP或小程序&#xff0c;打造一款功能全面且智能化程度高的闹钟产品。除了基本的时钟显示和闹钟提醒功能外&#xff0c;还拥有正计时、倒计时、日程安排、重要日提醒以及番茄钟…

fpga vga转hdmi 8位转十位 encoder模块

case语句写法 理解 //为了完成 RGB 图像数据 8b 转 10b 的编码 //此为xilinx 官方提供的编码模块代码 // TMDS 通过逻辑算法将 8 位字符数据通过编码转换为 10 位字符数据&#xff0c;前 8 位数据由原始信号经运算后 // 获得&#xff0c;第 9 位表示运算的方式&#xff0c;1 表…

北斗系统增强技术和应用

原创 风一样的航哥 航哥小站 2024年12月05日 08:00 江苏 一、北斗系统增强技术的定义 北斗系统增强技术是指通过一系列技术手段&#xff0c;提高北斗卫星导航系统的定位精度、可靠性和服务范围的技术。它主要包括地基增强技术、星基增强技术和低轨卫星导航增强技术等。 二、北…

大语言模型应用开发框架LangChain

大语言模型应用开发框架LangChain 一、LangChain项目介绍1、简介2、LangChain的价值3、实战演练 二、LangChain提示词大语言模型应用1、简介1.1、提示词模板化的优点1.2、提示词模板LLM 的应用1.3、Prompt 2、应用实战2.1、PromptTemplate LLM2.2、PromptTemplate LLM Outpu…

【C++|Linux|计网】构建Boost站内搜索引擎的技术实践与探索

目录 1、项目的相关背景 2.搜索引擎的相关宏观原理 3.搜索引擎技术栈和项目环境 4.正排索引vs倒排索引-搜索引擎具体原理 5.编写数据去标签与数据清洗的模块 Parser 5.1.去标签 目标&#xff1a; 5.2.代码的整体框架&#xff1a; EnumFile函数的实现&#xff1a; Enu…

产品批量分类设置——未来之窗行业应用跨平台架构

一、批量统计分类 提高效率 节省时间&#xff1a;当商品数量庞大时&#xff0c;手动逐个修改商品分类是一项极其耗时的任务。例如&#xff0c;一个电商平台有数千种商品&#xff0c;如果手动操作&#xff0c;可能需要花费数天甚至数周的时间来完成分类转移。而批量设置功能可以…

Linux 系统上配置 Go 环境

在 Linux 系统上配置 Go 环境比较简单&#xff0c;下面是详细的步骤&#xff0c;适用于大多数 Linux 发行版&#xff08;如 Ubuntu、CentOS、Debian 等&#xff09;&#xff1a; ### 1. **更新软件包列表** 在安装 Go 之前&#xff0c;首先确保您的软件包列表是最新的。使用以下…

异步FIFO的实现

异步FIFO是verilog中常见的设计&#xff0c;通常用于不同时钟域下的数据同步。 在实现 FIFO 时&#xff0c;无论是同步 FIFO 还是异步 FIFO &#xff0c;通常会通过双口 RAM &#xff08; Dual Port RAM &#xff09;并添加一些必要的逻辑来实现。双口 RAM的设计如下&#xff1…

专题三:穷举vs暴搜vs深搜vs回溯vs剪枝

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;了解什么是穷举vs暴搜vs深搜vs回溯vs剪枝&#xff0c;并且掌握其算法。 > 毒鸡汤&#xff1a;有些事情&#xff0c;总是不明白&#xff0c;所以我不…

停更期李子柒品牌线上破亿,电商内容营销策略怎样重塑升级?

11月13日&#xff0c;李子柒在接受新华网记者的专访时被问到了“未来的商业化考虑”。她表示&#xff1a;“肯定会有这方面的考虑&#xff0c;只是目前还没有特别明确的规划。我就想继续做我自己喜欢的事情&#xff0c;如果这件事情能够被认同&#xff0c;而且它是有价值的&…

2020年国赛高教杯数学建模E题校园供水系统智能管理解题全过程文档及程序

2020年国赛高教杯数学建模 E题 校园供水系统智能管理 原题再现 校园供水系统是校园公用设施的重要组成部分&#xff0c;学校为了保障校园供水系统的正常运行需要投入大量的人力、物力和财力。随着科学技术的发展&#xff0c;校园内已经普遍使用了智能水表&#xff0c;从而可以…

【SpringBoot】使用IDEA创建SpringBoot项目

1、使用SpringBoot脚手架创建 我们使用SpringBoot的脚手架Spring Initializr创建&#xff0c;如图所示&#xff1a; 2、选择SpringBoot版本 最开始做项目时候&#xff0c;组长说创建一个 springboot 2.5.4 的项目&#xff0c;mysql使用 5.6.X &#xff0c;maven使用是3.6.X…

MFC实现全屏功能

之前全屏都是参考&#xff1a; MFC单文档&#xff08;SDI&#xff09;全屏程序的实现 主要思路就是将各种菜单工具栏隐藏恢复。 随着MFC的升级&#xff0c;MFC框架本身就具备了全屏的功能。 微软有一个全屏实现类&#xff1a; CFullScreenImpl Class managing full-screen mod…

灰狼算法与蚁群算法的结合:一种新颖的优化方法

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

Mybatis要点总结

MyBatis 是一款优秀的 持久层 框架 &#xff0c;用于简化 JDBC 的开发。 Java Data Base Connectivity&#xff08;Java语言连接数据库&#xff09; 数据库连接池 数据库连接池的好处&#xff1a; 资源重用 提升系统响应速度 避免数据库连接遗漏 常见的数据库连接池&…

前缀和(八)矩阵区域和

1314. 矩阵区域和 给你一个 m x n 的矩阵 mat 和一个整数 k &#xff0c;请你返回一个矩阵 answer &#xff0c;其中每个 answer[i][j] 是所有满足下述条件的元素 mat[r][c] 的和&#xff1a; i - k < r < i k, j - k < c < j k 且(r, c) 在矩阵内。 示例 1&…

不一样的CSS(4)--icon图标系列之svg

序言 上一节内容我们讲解了如何利用css去画一个五角星&#xff0c;其中包括了使用svg的方法&#xff0c;有些小伙伴们对svg的使用不是很了解&#xff0c;那么本节内容我们主要来讲一下&#xff0c;关于svg标签的的使用。 目录 序言一、svg的介绍二、安装SVG扩展插件三、SVG基…

读取文件进度条

一、widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QMenuBar> #include <QFileDialog> #include <QFile> #include <QDebug> #include <QTimer> QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NA…

js this

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><title>this</title> </head> <body> <script>let fengfeng "枫枫"console.log(this)// alert("123")funct…

wordpress网站安装了Linux宝塔面板,限制IP地址访问网站,只能使用域名访问网站

一、Linux服务器安装Linux宝塔面板 这个步骤参考网上其他教程。 二、Linux宝塔面板部署wordpress网站 这个步骤参考网上其他教程&#xff0c;保证网站能够正常访问&#xff0c;并且使用Linux宝塔面板申请并部署了SSL证书&#xff0c;使用https协议默认443端口正常访问。 三…