代码随想录算法训练营第三十六天 | LeeCode 435. 无重叠区间 ,763.划分字母区间 , 56. 合并区间

435. 无重叠区间 - 力扣(LeetCode)

class Solution
{
private:static bool cmp(const vector<int> &a,const vector<int> &b){if(a[0]==b[0]) return a[1]<b[1];return a[0]<b[0];}
public:int eraseOverlapIntervals(vector<vector<int>> &intervals){if(intervals.size()==0) return 0;sort(intervals.begin(),intervals.end(),cmp);int nums=0;vector<vector<int>> last;last.push_back(intervals[0]);for(int i=1;i<intervals.size();i++){if(last[0][1]>intervals[i][0]){nums++;last[0]=last[0][1]>intervals[i][1]?intervals[i]:last[0];}else{last[0]=intervals[i];}}return nums;}
};

和昨天的社保气球很像,按照那个思路写了一下,发现还是有些案例不能通过。

最后发现是想的太简单了,没有考虑到后面的区间包含的范围比前面的区间小的情况,从而不能找出最小区间,导致不能找到最小删除次数。

题目链接:763. 划分字母区间 - 力扣(LeetCode)

class Solution {
public:vector<int> partitionLabels(string S) {int hash[27] = {0}; // i为字符,hash[i]为字符出现的最后位置for (int i = 0; i < S.size(); i++) { // 统计每一个字符最后出现的位置hash[S[i] - 'a'] = i;}vector<int> result;int left = 0;int right = 0;for (int i = 0; i < S.size(); i++) {right = max(right, hash[S[i] - 'a']); // 找到字符出现的最远边界if (i == right) {result.push_back(right - left + 1);left = i + 1;}}return result;}
};

用一个数组来表示出现过字符的最远位置。

当右边界right==最远位置就可以把他放进答案里面了。

题目链接:56. 合并区间 - 力扣(LeetCode)

class Solution {
public:vector<vector<int>> merge(vector<vector<int>>& intervals) {vector<vector<int>> result;if (intervals.size() == 0) return result; // 区间集合为空直接返回// 排序的参数使用了lambda表达式sort(intervals.begin(), intervals.end(), [](const vector<int>& a, const vector<int>& b){return a[0] < b[0];});// 第一个区间就可以放进结果集里,后面如果重叠,在result上直接合并result.push_back(intervals[0]); for (int i = 1; i < intervals.size(); i++) {if (result.back()[1] >= intervals[i][0]) { // 发现重叠区间// 合并区间,只更新右边界就好,因为result.back()的左边界一定是最小值,因为我们按照左边界排序的result.back()[1] = max(result.back()[1], intervals[i][1]); } else {result.push_back(intervals[i]); // 区间不重叠 }}return result;}
};

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

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

相关文章

C#进阶高级语法之LINQ:查询操作的便利性与效率提升

引言&#xff1a; 在C#编程中&#xff0c;LINQ&#xff08;Language-Integrated Query&#xff09;是一种强大的查询语言&#xff0c;它被集成在.NET框架中&#xff0c;允许开发者对各种数据源进行查询和操作。LINQ的出现&#xff0c;极大地提升了C#在数据处理方面的能力&#…

回溯难题(算法村第十八关黄金挑战)

复原 IP 地址 93. 复原 IP 地址 - 力扣&#xff08;LeetCode&#xff09; 有效 IP 地址 正好由四个整数&#xff08;每个整数位于 0 到 255 之间组成&#xff0c;且不能含有前导 0&#xff09;&#xff0c;整数之间用 . 分隔。 例如&#xff1a;"0.1.2.201" 和 &q…

IDEA中使用git提交代码时,有.class文件怎么避免

在IDEA中使用git提交代码时&#xff0c;git把.class文件都给我放进来了&#xff0c;而我并不想要提交.class文件 我要提交的是.java文件 应该怎么设置呢 解决方案&#xff0c;点击整个项目的生命周期中的clean之前&#xff0c;你会发现git提交栏的.class文件都不见了。

常用LDO型号

常用LDO型号 常用LDO型号-国产&进口 常用的LDO&#xff08;低压差线性稳压器&#xff09;型号有以下这些&#xff1a; LM2937及LM2937-N&#xff1a;这两款是TI&#xff08;德州仪器&#xff09;的产品&#xff0c;其中LM2937-N为低噪声版本&#xff0c;适用于对噪声敏感…

vue是如何监听对象和数组变化的

Vue框架通过其响应式系统来监听对象和数组的变化。这个系统的核心在于追踪依赖关系&#xff0c;并在数据变化时通知所有依赖于该数据的观察者。 1. 对象监听 Vue使用Object.defineProperty方法来劫持各个属性的getter和setter。当组件中的数据被读取时&#xff0c;会触发gette…

ROS2服务通信的实现

文章目录 1.服务通信的概念及应用场景1.1概念1.2 应用场景 2.准备工作3.服务通信的实现3.1 服务通信接口消息3.2 服务端实现3.3 客户端实现3.4 编译及运行3.4.1 修改CMakeLists3.4.2 服务端运行结果3.4.2 客户端运行结果 1.服务通信的概念及应用场景 1.1概念 服务通信也是ROS…

抖店0元入驻不交钱会怎么样?个人店和个体店的利弊分析,开店必看

我是王路飞。 现在的抖店是可以开通个人店的。 也就是不需要营业执照、直接使用个人身份证就可以在抖音开店&#xff0c;而且也不需要缴纳店铺保证金就能开店运营了。 但真实情况是怎么样的呢&#xff1f;新手0元入驻抖店不交这个保证金会怎么样呢&#xff1f; 今天给想在抖…

AI大预言模型——ChatGPT在地学、GIS、气象、农业、生态、环境应用

原文链接&#xff1a;AI大预言模型——ChatGPT在地学、GIS、气象、农业、生态、环境应用 一开启大模型 1 开启大模型 1)大模型的发展历程与最新功能 2)大模型的强大功能与应用场景 3)国内外经典大模型&#xff08;ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diff…

ios App 发送广播失败解决

记录开发 ios App 使用 c 混编时遇到的问题&#xff1a; 开发环境 macOS Sonoma&#xff08;最新版本14.3.1&#xff09; Xcode Version 15.2 ipadOS&#xff08;最新版本17.3.1&#xff09; 问题&#xff1a;在mac 上 和 ipad上测试&#xff0c;当 udp 发送广播&#xff…

跨域引起的两个接口的session_id不是同一个

来源场景&#xff1a; RequestMapping(“/captcha”)接口设置了SESSION_KEY&#xff0c;也能获取到&#xff0c;但是到了PostMapping(“/login”)接口就是空的&#xff0c;由于跨域导致的两个session_id不是同一个 /*** 系统用户 前端控制器*/ Controller CrossOrigin(origins…

【数据结构和算法初阶(C语言)】双向循环带头链表的增删查改详解(天才设计的链表结构,应用简单逆天!!!!!)

目录 ​编辑​编辑 1.双向链表的定义&#xff1a;前赴后继 2.带头链表的定义-----哨兵位 3.增删查改 3.1创建新节点函数----方便后续增加节点调用 3.2创建哨兵位----创建头结点 3.3增加节点&#xff0c;尾部插入数据 3.4尾删除 3.5查找函数----遍历对比&#xff…

AcWing 562.壁画

咱先看一眼算法标签&#xff0c;发现是思维题、枚举、前缀和 Buttt其实我们根据上诉的样例解释部分就会发现&#xff0c;其实这就是一个长度为⌈n/2⌉&#xff08;向上取整哦&#xff09;的连续子数组的最大和。 这题我也用暴力法试过啦&#xff0c;很明显会TLE 如果你对dp题…

Mac M系列芯片如何重新安装系统

使用可引导安装器重新安装&#xff08;可用于安装非最新的 Mac OS&#xff0c;系统降级&#xff0c;需要清除所有数据&#xff0c;过程确保连接上网络&#xff0c;虽然这种方式不会下载 Mac OS&#xff0c;但是需要下载固件等信息&#xff09; 插入制作好的可引导安装器&#x…

【使用imgaug库调整图像大小并修改对应的XML标签框】

使用imgaug库可以方便地进行图像增强操作&#xff0c;包括调整图像大小。以下是使用imgaug库调整图像大小并修改对应的XML标签框的示例脚本&#xff1a; 注意修改输入文件夹路径、输出文件夹路径和目标尺寸为自己内容。 input_folder "path/to/your/input_folder" …

kalibr标定ZED2i双目加imu

一、录制bag 本人使用的zed2i相机。 rosbag record -O 32 /zed2i/zed_node/imu/data /zed2i/zed_node/imdata_raw /zed2i/zed_node/left/image_rect_color /zed2i/zed_node/right/image_rect_color /zed2i/zed_node/left_raw/image_raw_color /zed2i/zed_node/right_raw/ima…

Matlab|【免费】基于合作博弈的综合能源系统利益分配优化调度

目录 主要内容 部分代码 结果一览 下载链接 主要内容 该程序实现的模型为综合能源系统利益分配优化调度&#xff0c;采用合作博弈方法&#xff0c;模型针对IES系统的P2G、电解槽、甲烷反应器、储氢罐、CHP和燃气锅炉等设备进行建模&#xff0c;实现基于合作博弈的…

std::shared_from_this注意事项:exception bad_weak_ptr

1.不可以在构造函数中调用shared_from_this() 因为它的实现是&#xff1a; _LIBCPP_INLINE_VISIBILITYshared_ptr<_Tp> shared_from_this(){return shared_ptr<_Tp>(__weak_this_);}也就是它依赖的__weak_this_此时还未创建完成。 2.一定要public继承 class MyTy…

大数据开发(Java面试真题-卷二)

大数据开发&#xff08;Java面试真题&#xff09; 1、请简要说明Java中equeals()和hashCode()的作用及区别&#xff1f;2、Java中的四种访问修饰符及它们之间的区别&#xff1f;3、请解释Java中的异常处理机制&#xff0c;包括checked exception和unchecked exception?4、Java…

Linux 学习笔记(10)

十、 进程管理 进程就是运行中的程序&#xff0c;一个运行着的程序&#xff0c;可能有多个进程。 比如 LinuxSir.Org 所用的 WWW 服务器是 apache 服务器&#xff0c;当管理员启动服务后&#xff0c;可能会有好多人来访问&#xff0c;也就是说许多用户来同时请 求 htt…

QT debug编译失败:xxx/bin/ld.exe: cannot find -lxxd1

原因&#xff1a;由于编译时&#xff0c;使用debug模式下&#xff0c;动态库没有对应的lxxd1中的xx库 解决方案1&#xff1a;改为release编译&#xff1b; 解决方案2&#xff1a;在引用的三方pri文件中&#xff0c;去掉多余的d #修改前 if(!debug_and_release|build_pass):CON…