题目描述:
思路: 将原数组排序后,依次选取一个与存储结果的二维数组末尾元素进行合并,然后进行添加。
class Solution {
public:
vector<vector<int>> merge(vector<vector<int>>& intervals) {
if(intervals.size()==0)
return {};
//排序
sort(intervals.begin(),intervals.end());
vector<vector<int>>merged;
for(int i=0;i<intervals.size();i++){
//定义左端点和右端点
int l=intervals[i][0],r=intervals[i][1];
//结果中的末尾数组依次与原数组合并,主要看结果中尾数组的右端点与进行合并的原数组左端点的大小
if(!merged.size()||merged.back()[1]<l)
merged.push_back({l,r});
else
merged.back()[1]=max(merged.back()[1],r);
}
return merged;
}
};