zoukankan      html  css  js  c++  java
  • 56. Merge Intervals

    Given a collection of intervals, merge all overlapping intervals.

    Example 1:

    Input: [[1,3],[2,6],[8,10],[15,18]]
    Output: [[1,6],[8,10],[15,18]]
    Explanation: Since intervals [1,3] and [2,6] overlaps, merge them into [1,6].
    

    Example 2:

    Input: [[1,4],[4,5]]
    Output: [[1,5]]
    Explanation: Intervals [1,4] and [4,5] are considered overlapping.

    NOTE: input types have been changed on April 15, 2019. Please reset to default code definition to get new method signature.

    class Solution {
    public:
        vector<vector<int>> merge(vector<vector<int>>& intervals) {
            sort(intervals.begin(),intervals.end(), [](vector<int> &a, vector<int> &b){return a[0]<b[0];});
            vector<vector<int>> res;
            if(intervals.empty())return res;
            res.push_back(intervals[0]);for(int i=1;i<intervals.size();++i)
            {
                if(res.back()[1]<intervals[i][0])
                    res.push_back(intervals[i]);
                else
                    res.back()[1]=max(res.back()[1],intervals[i][1]);
            }
            return res;
        }
    };

    先排序,按照interval的第一个元素,也就是开始值排序, 

    比较每两个interval,  a的end和b的start

  • 相关阅读:
    git分支管理策略
    git解决冲突
    git分支创建和合并
    git连接远程库
    git删除文件
    git撤销修改
    4k测试网站
    Windows10通过TightVNC远程连接Ubuntu18.04
    robot报告合并输出
    python 传参中的*和**
  • 原文地址:https://www.cnblogs.com/lychnis/p/11789063.html
Copyright © 2011-2022 走看看