华为题:最多可以参加的会议数目

给定一个会议时间数组 intervals,其中 intervals[i] = [start_i, end_i] 表示第 i 个会议的开始时间和结束时间。

你可以在任意时间参加一个会议,但同一时间只能参加一个会议。会议一旦开始,你就必须全程参加。

请输出最多可以参加的会议数目。

输入描述

第一行输入一个整数 n,表示会议数量。

接下来 n 行,每行输入两个整数 start 和 end,表示会议的开始和结束时间。

输出描述

输出最多可以参加的会议数目。

示例 1

输入

text

复制代码
4
1 3
2 4
3 5
4 6

输出

text

复制代码
2

C++ 解法

cpp

复制代码
#include <bits/stdc++.h>
using namespace std;

int main() {
    int n;
    cin >> n;

    vector<pair<int,int>> meetings(n);
    for (int i = 0; i < n; i++) {
        cin >> meetings[i].first >> meetings[i].second;
    }

    sort(meetings.begin(), meetings.end(), [](auto& a, auto& b) {
        return a.second < b.second;
    });

    int ans = 0;
    int lastEnd = INT_MIN;

    for (auto& m : meetings) {
        if (m.first > lastEnd) {
            ans++;
            lastEnd = m.second;
        }
    }

    cout << ans << endl;
    return 0;
}
相关推荐
dialect_3 小时前
CODEFORCES ROUND 1127 DIV2
开发语言·c++·算法
Nuanyt3 小时前
LeetCode Hot 100 链表专题(四)· 3 题(Java)
java·算法·leetcode·链表·双指针
灯澜忆梦3 小时前
LeetCode 1861. 旋转盒子|Go 双指针解法
算法
软件派4 小时前
生产动态数据智能风控:阈值判别、趋势预测、异常识别算法工程落地实战
前端·数据库·算法
悠仁さん11 小时前
【C++】AVL 树
c++
wuminyu11 小时前
JVM规范学习总结:解释器与JIT编译器如何处理JVM字节码
java·linux·c语言·jvm·c++
小徐不徐说11 小时前
序列化与反序列化:把 C++ 对象可靠地保存下来
开发语言·数据库·c++·php
ZhengEnCi12 小时前
模型训练完整流程:从数据准备到模型上线的 10 个关键步骤(全文可跑)
后端·算法
ragnwang12 小时前
Notes: Python pybind11 import C++ module
开发语言·c++·python
充值内卷13 小时前
我给桌面加了个鱼缸:C++ 写后端,WebView2 里养一座 Three.js 小岛
开发语言·javascript·c++