leetcode 56. 合并区间

题目描述

代码:

cpp 复制代码
class Solution {
    struct Interval{
        int left;
        int right;
        Interval(int l=0,int r=0):left(l),right(r){}
        bool operator<(const Interval& rhs) const{
            return left<rhs.left;
        }
    };

public:
    vector<vector<int>> merge(vector<vector<int>>& intervals) {
        int len = intervals.size();
        vector<Interval> myIntervals(len);
        for(int i = 0;i <len;i++){
            myIntervals[i].left =intervals[i][0];
            myIntervals[i].right=intervals[i][1];
        }
        sort(myIntervals.begin(),myIntervals.end());
        vector<vector<int>> res;
        vector<int> range(2,0);
        int low = 0;
        int high = 0;
        for(int i = 1;i < len;i++){
            if(myIntervals[high].right >= myIntervals[i].right)
                continue;

            if(myIntervals[high].right >= myIntervals[i].left){
                high = i;
            }else{
                range[0] = myIntervals[low].left;
                range[1] = myIntervals[high].right;
                res.push_back(range);
                low = i;
                high = low;
            }
        }
        range[0] = myIntervals[low].left;
        range[1] = myIntervals[high].right;
        res.emplace_back(range);
        return res;
    }
};
相关推荐
iAkuya1 小时前
(leetcode)力扣100 59括号生成(回溯||按括号序列的长度递归)
算法·leetcode·职场和发展
共享家95271 小时前
双指针算法(一)
数据结构·算法·leetcode
渐暖°1 小时前
【leetcode算法从入门到精通】9. 回文数
算法·leetcode·职场和发展
我是咸鱼不闲呀1 小时前
力扣Hot100系列18(Java)——[技巧]总结 (只出现一次的数字,多数元素,颜色分类,下一个排列,寻找重复数)
java·算法·leetcode
鱼跃鹰飞1 小时前
Leetcode279:完全平方数
数据结构·算法·leetcode·面试
芒克芒克1 小时前
LeetCode 跳跃游戏 II 最优解法:贪心算法
leetcode·游戏·贪心算法
User_芊芊君子2 小时前
【LeetCode原地复写零】:双指针+逆向填充,O(n)时间O(1)空间最优解!
android·linux·leetcode
进击的荆棘2 小时前
优选算法——滑动窗口
c++·算法·leetcode
多米Domi0113 小时前
0x3f 第49天 面向实习的八股背诵第六天 过了一遍JVM的知识点,看了相关视频讲解JVM内存,垃圾清理,买了plus,稍微看了点确定一下方向
jvm·数据结构·python·算法·leetcode
VT.馒头18 小时前
【力扣】2625. 扁平化嵌套数组
前端·javascript·算法·leetcode·职场和发展·typescript