$\huge \color{orange}{成仙之路->}$ $\huge \color{purple}{算法基础课题解}$
思路:
可以区间合并的条件是第一元素要小于等于前一区间的第二元素,第二元素必须大于前一区间的第二元素
完整代码
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> PII;
int n,res;
vector<PII> nums;
int main()
{
cin>>n;
for(int i=0;i<n;i++)
{
int l,r;
cin>>l>>r;
nums.push_back({l,r});
}
//让每个区间按第一元素进行排序
sort(nums.begin(),nums.end());
int st=-2e9,ed=-2e9;
for(auto item:nums)
{
if(ed!=-2e9&&item.first>ed)
{
res++;
st=item.first,ed=item.second;
}
else if(item.second>ed) ed=item.second;
}
res++;
cout<<res<<endl;
return 0;
}