代码随想录打卡day23:435.无重叠区间

题目链接:435. 无重叠区间 - 力扣(LeetCode)

这道题和上一道射箭的题类似,都是求公共区间问题。上一题是一直求公共区间,求到没交集的就次数+1然后更新区间。

这道题是求到有交集的,res+1并更新当前区间,如果下一个区间依旧和更新后的区间有交集,那么res+1并再次更新区间。新区间更新的条件以最小右边界来更新,如果达不到最小右边界那么就是没交集,继续遍历即可,如果当前区间左边界小于更新后的最小右边界,那么证明三个区间有交集,res+1并再次更新最小右边界然后与下一个区间判断。

代码如下:

cpp 复制代码
class Solution {
public:
    int eraseOverlapIntervals(vector<vector<int>>& intervals) {
        int res=0;
        sort(intervals.begin(),intervals.end(),
        [](const vector<int>&cur,const vector<int>nxt){
            return cur[0]<nxt[0];
        });
        for(int i=1;i<intervals.size();++i){
            if(intervals[i-1][1]<=intervals[i][0]) continue;

            else{
                ++res;
                intervals[i][1]=min(intervals[i-1][1],intervals[i][1]);
            }
        }
        return res;
    }
};
相关推荐
Ulyanov9 分钟前
顶层设计——单脉冲雷达仿真器的灵魂蓝图
python·算法·pyside·仿真系统·单脉冲
智者知已应修善业1 小时前
【查找字符最大下标以*符号分割以**结束】2024-12-24
c语言·c++·经验分享·笔记·算法
91刘仁德2 小时前
c++类和对象(下)
c语言·jvm·c++·经验分享·笔记·算法
diediedei2 小时前
模板编译期类型检查
开发语言·c++·算法
阿杰学AI2 小时前
AI核心知识78——大语言模型之CLM(简洁且通俗易懂版)
人工智能·算法·ai·语言模型·rag·clm·语境化语言模型
mmz12072 小时前
分治算法(c++)
c++·算法
睡一觉就好了。3 小时前
快速排序——霍尔排序,前后指针排序,非递归排序
数据结构·算法·排序算法
Tansmjs3 小时前
C++编译期数据结构
开发语言·c++·算法
金枪不摆鳍3 小时前
算法-字典树
开发语言·算法
diediedei3 小时前
C++类型推导(auto/decltype)
开发语言·c++·算法