56. 合并区间
排序后,进行遍历
- 当result为空时,直接将当前的区间添加
当当前区间和result最后一个区间重叠时,将result的最后一个区间的右边界变为
max(result.back()[1] ,intervals[i][1])
当当前区间和result最后一个区间没有重叠时,直接将当前区间添加
class Solution {
public:
static bool cmp(vector<int>& a,vector<int>& b)
{
return a[0]<b[0];
}
vector<vector<int>> merge(vector<vector<int>>& intervals) {
sort(intervals.begin(),intervals.end(),cmp);
vector<vector<int>> result;
for(int i=0;i<intervals.size();i++)
{
if(result.size()==0 || intervals[i][0]>result.back()[1])
{
result.push_back({intervals[i][0],intervals[i][1]});
}
else
result.back()[1] = max(result.back()[1] ,intervals[i][1]);
}
return result;
}
};