[C++][算法基础]最大不相交区间数量(贪心 + 区间问题2)

给定 𝑁 个闭区间 [𝑎𝑖,𝑏𝑖],请你在数轴上选择若干区间,使得选中的区间之间互不相交(包括端点)。

输出可选取区间的最大数量。

输入格式

第一行包含整数 𝑁,表示区间数。

接下来 𝑁 行,每行包含两个整数 𝑎𝑖,𝑏𝑖,表示一个区间的两个端点。

输出格式

输出一个整数,表示可选取区间的最大数量。

数据范围

1≤𝑁≤,

≤𝑎𝑖≤𝑏𝑖≤

输入样例:
复制代码
3
-1 1
2 4
3 5
输出样例:
复制代码
2

代码:

cpp 复制代码
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;

const int N = 100010;
int n,l,r;
vector<pair<int,int>> Interval;

int main(){
    cin>>n;
    for(int i = 0;i < n;i ++){
        cin>>l>>r;
        Interval.push_back({r,l});
    }
    sort(Interval.begin(),Interval.end());
    int res = 0, RightEnd = -2e9;
    for(int i = 0;i < n;i ++){
        int left = Interval[i].second;
        int right = Interval[i].first;
        if(left > RightEnd){
            res ++;
            RightEnd = right;
        }
    }
    cout<<res<<endl;
    return 0;
}
相关推荐
2401_891482171 小时前
多平台UI框架C++开发
开发语言·c++·算法
88号技师2 小时前
2026年3月中科院一区SCI-贝塞尔曲线优化算法Bezier curve-based optimization-附Matlab免费代码
开发语言·算法·matlab·优化算法
t198751282 小时前
三维点云最小二乘拟合MATLAB程序
开发语言·算法·matlab
无敌昊哥战神2 小时前
【LeetCode 257】二叉树的所有路径(回溯法/深度优先遍历)- Python/C/C++详细题解
c语言·c++·python·leetcode·深度优先
x_xbx2 小时前
LeetCode:148. 排序链表
算法·leetcode·链表
Darkwanderor2 小时前
三分算法的简单应用
c++·算法·三分法·三分算法
2401_831920743 小时前
分布式系统安全通信
开发语言·c++·算法
WolfGang0073213 小时前
代码随想录算法训练营 Day17 | 二叉树 part07
算法
温九味闻醉3 小时前
关于腾讯广告算法大赛2025项目分析1 - dataset.py
人工智能·算法·机器学习
2401_877274243 小时前
从匿名管道到 Master-Slave 进程池:Linux 进程间通信深度实践
linux·服务器·c++