//无重叠区间:给定一个区间的集合,请找出这些区间中最多有几个互不重叠的区间。
#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;
}
按右界排序:无重叠区间:给定一个区间的集合,请找出这些区间中最多有几个互不重叠的区间。
最新推荐文章于 2024-06-07 20:11:45 发布