码迷,mamicode.com
首页 > 编程语言 > 详细

区间合并 C++

时间:2020-03-31 12:39:01      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:space   push   names   highlight   cond   tor   merge   name   return   

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
typedef pair<int, int> PII;
const int N = -2e9;

void merge(vector<PII> &segs) {
vector<PII> res;
sort(segs.begin(), segs.end());
int start = N, end = N;
for (auto seg : segs) {
if (seg.first > end) {
if (end != N) res.push_back({ start,end });
start = seg.first;
end = seg.second;
}
else {
end = max(end, seg.second);
}

}
if (start != N) res.push_back({ start,end });
segs = res;
}
int main() {
vector<PII> segs;
int n;
cin >> n;
for (int i = 0; i < n; i++) {
int l, r;
cin >> l >> r;
segs.push_back({ l,r });


}

merge(segs);
cout << segs.size();


return 0;
}

  

区间合并 C++

标签:space   push   names   highlight   cond   tor   merge   name   return   

原文地址:https://www.cnblogs.com/pengzhangzhi/p/12604079.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!