C++速通LeetCode中等第9题-合并区间

排序后迭代,遇到符合条件的就删除前一项,合并到后一项。

cpp 复制代码
class Solution {
public:
    vector<vector<int>> merge(vector<vector<int>>& intervals) {
        int left = 0,right = 0;
        sort(intervals.begin(), intervals.end());
        vector<int> tmp;
        for(auto it = intervals.begin(); it != --(intervals.end()); )
        {
            if((*it)[1] >= (*(++it))[0])
            {
                left = (*(--it))[0];
                right = (*it)[1];
                it = intervals.erase(it);
                right = max(right,(*it)[1]);
                tmp.push_back(left);
                tmp.push_back(right);
                *(it) = tmp;
                tmp.clear();
            }
        }
        return intervals;
    }
};
相关推荐
叶小鸡14 小时前
小鸡玩算法-力扣HOT100-贪心算法
算法·leetcode·贪心算法
cany100014 小时前
C++ - 智能指针
开发语言·c++
我要升天!14 小时前
C语言连接 MySQL:libmysqlclient 获取方式详解
c语言·开发语言·数据库·mysql·adb
angushine14 小时前
Python常用方法
开发语言·前端·python
潜创微科技15 小时前
CH9245:双 Type‑C 转 PD 芯片方案,便携显示与拓展坞的理想选择
c语言·开发语言
Emberone15 小时前
深入理解 C++ STL string:从接口使用到底层模拟实现
c++·stl
【 】42315 小时前
pyhon相对导入
开发语言·python
小同志0015 小时前
IoC 详解
java·开发语言
t***54415 小时前
如何在 Dev-C++ 中设置和使用 Clang 编译器
开发语言·c++
csbysj202015 小时前
Markdown 段落格式
开发语言