0%

合并区间

​ 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [start$_i$, end$_i$] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。

​ 在二维vector数组中,sort()函数可以按照每一行的第一个元素对行进行排序。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution {
public:
vector<vector<int>> merge(vector<vector<int>>& intervals) {
int n = intervals.size();
if(n==1)
return intervals;
sort(intervals.begin(), intervals.end());
vector<vector<int>> vec;
vec.push_back(intervals[0]);
int j =0;
for(int i = j+1;i<n;i++){
if(intervals[i][0]<=vec[j][1])
vec[j][1]=max(vec[j][1],intervals[i][1]);
else{
vec.push_back(intervals[i]);
j++;
}
}
return vec;
}
};