AcWing 803. 区间合并
原题链接
简单
作者:
colde
,
2021-04-11 22:25:12
,
所有人可见
,
阅读 253
在原数组上修改,注意while循环的越界检查条件555,debug20分钟
C++ 代码
#include<iostream>
#include<algorithm>
#include<math.h>
#include<vector>
using namespace std;
const int N=1e5+10;
typedef pair<int,int> PII;
PII group[N];
bool cmp(PII x,PII y){
return x.first<y.first;
}
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
PII temp;
cin>>temp.first>>temp.second;
group[i]=temp;
}
sort(group,group+n,cmp);
int ans=0;
for(int i=0;i<n;i++){
while(group[i].second>=group[i+1].first&&i+1<n){
if(group[i].second>=group[i+1].second){
group[i+1].first=group[i].first;
group[i+1].second=group[i].second;
}
else{
group[i+1].first=group[i].first;
}
i++;
}
ans++;
}
cout<<ans;
}