//无重叠区间:给定一个区间的集合,请找出这些区间中最多有几个互不重叠的区间。
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
bool com(vector<int> a, vector<int> b) {
return a[1] < b[1];
}
int cc(vector<vector<int>> s) {
sort(s.begin(), s.end(),com);
int ll = s[0][1];
int count = 1;
for (int i = 1; i < s.size(); i++) {
if (s[i][0] > ll) {
count += 1;
ll = s[i][1];
}
}
return count;
}
int main() {
vector<vector<int>> s = { {1,3},{2,6},{8,11},{4,9} };
cout << cc(s);
return 0;
}
按右界排序:无重叠区间:给定一个区间的集合,请找出这些区间中最多有几个互不重叠的区间。
最新推荐文章于 2025-12-12 16:37:00 发布
该篇文章介绍了如何使用C++编程语言中的排序和条件判断来解决一个问题:在一个区间集合中找到最多有多少个互不重叠的区间。作者给出了一个名为`cc`的函数,通过先对区间按照起始点排序,然后逐个检查后续区间是否与前一个区间有重叠来计算结果。
2483

被折叠的 条评论
为什么被折叠?



