给定一个会议时间数组 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;
}