[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;
}
相关推荐
木心爱编程5 小时前
C++程序员速通C#:从Hello World到数据类型
c++·c#
ulias2125 小时前
单元最短路问题
数据库·c++·算法·动态规划
崎岖Qiu5 小时前
leetcode380:RandomizedSet - O(1)时间插入删除和获取随机元素(数组+哈希表的巧妙结合)
java·数据结构·算法·leetcode·力扣·散列表
ZLRRLZ5 小时前
【数据结构】图
数据结构·算法·图论
Ada_疯丫头5 小时前
杰伊·温格罗教我数据结构与算法
算法
小白开始进步5 小时前
机器人集群调度算法简介与实现思路
算法·机器人
ajassi20005 小时前
开源 C++ QT Widget 开发(十六)程序发布
linux·c++·qt·开源
好易学·数据结构6 小时前
可视化图解算法60: 矩阵最长递增路径
数据结构·算法·leetcode·力扣·递归·回溯算法·牛客
SamsongSSS6 小时前
JavaScript逆向SM国密算法
javascript·算法·逆向
图灵信徒6 小时前
2025 ICPC Gran Premio de Mexico 3ra Fecha
c++·算法·codeforcrs