Leetcode 56.合并区间

问题描述

给出一个区间的集合,请合并所有重叠的区间。

[ [ 1 , 3 ] , [ 2 , 6 ] , [ 8 , 10 ] , [ 15 , 18 ] ] 输入: [[1,3],[2,6],[8,10],[15,18]]

[ [ 1 , 6 ] , [ 8 , 10 ] , [ 15 , 18 ] ] 输入: [[1,6],[8,10],[15,18]]

解题报告

按照区间的起始值进行排序,那么在这个排序的列表中可以合并的区间一定是连续的。

实现代码

class Solution {
public:
    vector<vector<int>> merge(vector<vector<int>>& intervals) {
        vector<vector<int>>ans;
        sort(intervals.begin(),intervals.end());
        for(int i=0;i<intervals.size();i++){
            vector<int>temp;
            int max_=intervals[i][1];
            temp.push_back(intervals[i][0]);
            while(i<intervals.size()-1&&(max_>=intervals[i+1][0])){
                max_=max(max_,intervals[i+1][1]);
                i++;
            }
            temp.push_back(max_);
            ans.push_back(temp);
        }
        return ans;
    }
};
MD_
发布了139 篇原创文章 · 获赞 8 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_27690765/article/details/105098977