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;
    }
};
相关推荐
求梦820几秒前
【力扣hot100题】移动零(1)
算法·leetcode·职场和发展
J_liaty3 分钟前
RabbitMQ面试题终极指南
开发语言·后端·面试·rabbitmq
JosieBook13 分钟前
【开源】基于 C# 和 Halcon 机器视觉开发的车牌识别工具(附带源码)
开发语言·c#
xlq2232218 分钟前
37.智能指针
c++
逑之26 分钟前
C语言笔记14:结构体、联合体、枚举
c语言·开发语言·笔记
崇山峻岭之间29 分钟前
Matlab学习记录30
开发语言·学习·matlab
stillaliveQEJ33 分钟前
【JavaEE】Spring IoC(二)
java·开发语言·spring
REDcker35 分钟前
AIGCJson 库解析行为与异常处理指南
c++·json·aigc·c
练习时长一年35 分钟前
LeetCode热题100(爬楼梯)
算法·leetcode·职场和发展