以数组 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; } };
|