1.合并区间
给出一个区间的集合,请合并所有重叠的区间。
思路:首先按照区间起始坐标对intervals进行排序,然后合并。
vector<vector<int>> merge(vector<vector<int>>& intervals) {
vector<vector<int>> res;
sort(intervals.begin(), intervals.end());
if(intervals.size() == 0)
{
return res;
}
res.push_back(intervals[0]);
int res_index = 0;
int cur_small = intervals[0][0];
int cur_big = intervals[0][1];
for(int i = 1; i < intervals.size(); i++)
{
if(intervals[i][0] <= cur_big && intervals[i][1] <= cur_big)
{
continue;
}
else if(intervals[i][0] <= cur_big && intervals[i][1] > cur_big)
{
res[res_index][1] = intervals[i][1];
cur_big = intervals[i][1];
}
else if(intervals[i][0] > cur_big)
{
res.push_back(intervals[i]);
res_index++;
cur_small = intervals[i][0];
cur_big = intervals[i][1];
}
}
return res;
}