- 区间问题
边合并区间,边加入区间
class Solution
{
public:
bool static cmp(vector<int>& a, vector<int>& b)//按照数组首元素大小进行排序
{
return a[0] < b[0];
}
vector<vector<int>> merge(vector<vector<int>>& intervals)
{
vector<vector<int>> res;
if (intervals.empty())
{
return res;
}
sort(intervals.begin(), intervals.end(), cmp);
res.push_back(intervals[0]);//将首个区间压入 vector
for (int i = 1; i < intervals.size(); ++i)
{
if (res.back()[1] >= intervals[i][0])//如果 vector 中的尾元素 >= 第 i 个区间的 首端点,则更新该尾元素(即完成这两个区间的合并)
{
res.back()[1] = max(intervals[i][1], res.back()[1]);
}
else//否则 说明该区间与 第 i 个区间 不重复,直接压入该元素即可
{
res.push_back(intervals[i]);
}
}
return res;
}
};