class Solution {
public:
static bool cmp(vector<int>&a,vector<int>&b){
// end从小到大,相同条件begin从大到小
return a[1]<b[1];
}
vector<vector<int>> merge(vector<vector<int>>& intervals) {
vector<vector<int>>res;
if(intervals.size()==0){
return res;
}
sort(intervals.begin(),intervals.end(),cmp);
res.push_back(intervals[0]);
for(int i=1;i<intervals.size();i++){
while(res.size()>0&&res.back()[0]>=intervals[i][0]){
// pre内含于now [1,2],[3,4],[1,4] =>[1,4] / [3,4],[2,6] =>[2,6]
// 需要pop所有内含型pre,避免遗漏,当然这些pre对结果也无影响
res.pop_back();
}
if(res.size()==0){
res.push_back(intervals[i]);
}
else{
if(res.back()[1]>=intervals[i][0]&&res.back()[0]<=intervals[i][0]){
// 交叉型 [2,4],[3,5]=>[2,5]
// vector<int>v{res.back()[0],intervals[i][1]};
// res.pop_back();
// res.push_back(v);
res.back()[1]=intervals[i][1];
}
else{
// 分离型 [1,3],[4,6] =>[1,3],[4,6]
res.push_back(intervals[i]);
}
}
}
return res;
}
};
区间并集
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- // 区间贪心——尽可能多的开区间.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//l...
- 一、题目 https://leetcode-cn.com/problems/interval-list-inter...
- 给定两个由一些 闭区间 组成的列表,每个区间列表都是成对不相交的,并且已经排序,返回这两个区间列表的交集。示例:输...