【c++刷题笔记-贪心】day30:56. 合并区间 、 738.单调递增的数字

56. 合并区间 - 力扣(LeetCode)

思路:覆盖区间问题,先排序再判断边界

重点:二维数组可以使用back()函数直接更换边界值

class Solution {
public:static bool cmp(const vector<int>& a,const vector<int>& b){return a[0]<b[0];}vector<vector<int>> merge(vector<vector<int>>& intervals) {sort(intervals.begin(),intervals.end(),cmp);vector<vector<int>>ans;int n=intervals.size();ans.push_back(intervals[0]);//第一个区间直接放for(int i=1;i<n;i++){if(ans.back()[1]>=intervals[i][0]){ans.back()[1]=max(ans.back()[1],intervals[i][1]);//更新右边界}else{ans.push_back(intervals[i]);}}return ans;}
};

738. 单调递增的数字 - 力扣(LeetCode)

思路:先转换为字符串,前一个数小于当前数的时候前一个数减一,当前数替换为‘9’

重点:从后向前遍历使用flag记录需要替换的下标

class Solution {
public:int monotoneIncreasingDigits(int n) {if(n<=9){return n;}string s=to_string(n);int m=s.size();int flag=m;for(int i=m-1;i>0;i--){if(s[i-1]>s[i]){flag=i;s[i-1]--;}}for(int i=flag;i<m;i++){s[i]='9';}return stoi(s);}
};

总结

贪心算法,需要一定的技巧,覆盖区间可以直接用back()函数修改右边界。修改数字可以使用flag来记录需要修改的数字的下标

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

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

相关文章

上网监控软件有哪些?3款实力出众的上网监控软件

为什么需要上网监控软件&#xff1f; 据说&#xff0c;99%的员工上班都会摸鱼&#xff0c;1%的员工上班会窃取公司信息。 所以&#xff0c;因此&#xff0c;监控员工的上网行为是很有必要滴。 总结下来&#xff0c;上网监控软件的作用是&#xff1a; 1.提高生产力&#xff1…

天线罩作用

天线罩是安装在天线上的一个保护性结构&#xff0c;基本作用如下&#xff1a; 1.保护天线&#xff1a;天线罩可以保护天线免受外界环境的影响&#xff0c;如雨、雪、风、沙尘等&#xff0c;延长天线的使用寿命。 2.减少损伤&#xff1a;在天线遭受外力撞击时&#xff0c;天线…

前端位置布局汇总

HTML中脱离文档流的元素有&#xff1a; position: absolute - 元素相对于最近的已定位&#xff08;非 static&#xff09;祖先元素定位。 position: fixed - 元素相对于浏览器窗口定位。 float: left 或 float: right - 元素向左或向右浮动&#xff0c;周围的内容会环绕它。 …

shark云原生-日志体系-filebeat高级配置(适用于生产)-更新中

文章目录 1. filebeat.inputs 静态日志收集器2. filebeat.autodiscover 自动发现2.1. autodiscover 和 inputs2.2. 如何配置生效2.3. Providers 提供者2.4. Providers kubernetes2.5. 配置 templates2.5.1. kubernetes 自动发现事件中的变量字段2.5.2 配置 templates 2.6. 基于…

深度学习全景进阶:最新Python深度学习进阶与前沿应用

查看原文>>>深度学习全景进阶&#xff1a;最新Python深度学习进阶与前沿应用 近年来&#xff0c;伴随着以卷积神经网络&#xff08;CNN&#xff09;为代表的深度学习的快速发展&#xff0c;人工智能迈入了第三次发展浪潮&#xff0c;AI技术在各个领域中的应用越来越广…

IDEA发疯导致maven下载回来的jar不完整zip END header not found

IDEA发疯导致maven下载回来的jar不完整zip END header not found 具体报错 java: 读取D:\mavenRepository\com\alibaba\druid-spring-boot-starter\1.2.23\druid-spring-boot-starter-1.2.23.jar时出错; zip END header not foundjava: java.lang.RuntimeException: java.io.…

2024 JuniorCryptCTF reppc 部分wp

Random cipher 文本编辑器打开附件 比较简单。脚本 Mutated Caesar 文本编辑器打开附件 比较简单。脚本 Pizza 附件拖入dnSpy 比较简单。脚本 l33t Leet&#xff0c;又称黑客语&#xff0c;是指一种发源于欧美地区的BBS、线上游戏和黑客社群所使用的文字书写方式&#xff0c;通…

Linux:进程终止和进程替换

Linux&#xff1a;Linux&#xff1a;进程终止和进程替换 一、进程终止1.1 进程退出场景和创建退出方式 1.2 exit 和 _exit区别二、进程程序替换2.1 进程替换函数2.2 函数解释及命名解释函数解释命名解释 2.3 单进程程序替换&#xff08;无子进程&#xff09;2.3.1 带l函数进程替…

ArduPilot开源飞控之AP_VisualOdom

ArduPilot开源飞控之AP_VisualOdom 1. 源由2. 类定义2.1 类与构造函数2.2 枚举类型2.3 公共方法2.4 消息处理2.5 其他功能2.6 私有成员 3. 框架设计3.1 启动代码 AP_VisualOdom::init3.2 消息处理3.2.1 AP_VisualOdom::handle_vision_position_delta_msg3.2.2 AP_VisualOdom::h…

买的Google账号登录,修改辅助邮箱收不到验证码?可能是个简单的错误

这篇文章分享一个案例&#xff0c;购买了谷歌账号以后如何修改辅助邮箱&#xff0c;修改辅助邮箱的一些要点&#xff0c;以及常见的一个错误。 一、案例回放 这个朋友昨天在我的一个视频下面留言说买了谷歌账号以后&#xff0c;想修改辅助邮箱地址&#xff0c;但是输入了辅助…

中英双语介绍加拿大多伦多(Toronto)

中文版 多伦多概述 多伦多&#xff08;Toronto&#xff09;是加拿大最大的城市&#xff0c;也是北美地区重要的经济、文化和金融中心。以下是对多伦多的详细介绍&#xff0c;包括其经济地位、金融中心、人口、地理位置、高等教育、移民政策、著名景点和居住的名人等方面的信息…

【Git】本地版本控制

Git 是一个分布式版本控制系统&#xff0c;用于跟踪文件的更改&#xff0c;通常用于源代码管理。它的设计目的是为了协同工作和版本管理&#xff0c;让多个开发人员能够高效地合作开发和维护代码。 Git环境配置 在官网可以找到对应下载&#xff1a;Git - Downloads (git-scm.c…

【WebRTC实现点对点视频通话】

介绍 WebRTC (Web Real-Time Communications) 是一个实时通讯技术&#xff0c;也是实时音视频技术的标准和框架。简单来说WebRTC是一个集大成的实时音视频技术集&#xff0c;包含了各种客户端api、音视频编/解码lib、流媒体传输协议、回声消除、安全传输等。对于开发者来说可以…

avcodec_send_packet函数阻塞

用ffmpeg4.1.4开发一个播放器&#xff0c;解码过程如下&#xff0c;在每个函数前设置标志&#xff0c;测试发现程序阻塞在avcodec_send_packet函数。 while(true){av_read_frameavcodec_send_packetavcodec_receive_frameav_packet_unref } 解释如下&#xff1a; avcodec_se…

嵌入式Linux:如何学好嵌入式?

目录 方法步骤 1、 基础知识 2、 学习linux 3、 学习嵌入式linux 4、深入学习 嵌入式书籍推荐 Linux基础 Linux内核 研发方向 硬件基础 方法步骤 1、 基础知识 目的:能看懂硬件工作原理,但重点在嵌入式软件,特别是操作系统级软件。 科目:数字电路、计算机组成原理…

Unity3D游戏 RPG

丛林探险游戏 人物进行探险游戏 拥有登录&#xff0c;首页&#xff0c;3D物体旋转浏览的功能&#xff0c;还能进行种植树等功能

【异常错误】‘NoneType‘ object has no attribute ‘GetSubstructMatches‘

出现的错误信息&#xff1a; AttributeError: Caught AttributeError in DataLoader worker process 0. Original Traceback (most recent call last): File "/home/mapengsen/anaconda3/envs//lib/python3.8/site-packages/torch/utils/data/_utils/worker.py", l…

【matlab 路径规划】基于改进遗传粒子群算法的药店配送路径优化

一 背景介绍 本文分享的是一个基于订单合并的订单分配和路径规划联合优化&#xff0c;主要背景是骑手根据客户需求&#xff0c;从药店取药之后进行配送&#xff0c;配送的过程中考虑路径的长度、客户的服务时间窗、车辆的固定成本等要素&#xff0c;经过建模和优化得到最优的配…

C# WinForm —— 38 SplitContainer介绍

1. 简介 将页面拆分成两个大小可以调整的区域&#xff0c;中间有一个拆分条&#xff0c;可以拖动拆分条来调整左右区域的大小 2. 属性 属性解释(Name)控件ID&#xff0c;在代码里引用的时候会用到BoderStyle边框样式&#xff1a;None、FixedSingle、Fixed3DAutoScroll当控件…

力扣 225 用队列实现栈 记录

题目描述 请你仅使用两个队列实现一个后入先出&#xff08;LIFO&#xff09;的栈&#xff0c;并支持普通栈的全部四种操作&#xff08;push、top、pop 和 empty&#xff09;。实现 MyStack 类&#xff1a; void push(int x) 将元素 x 压入栈顶。 int pop() 移除并返回栈顶元素…