LeetCode56. 合并区间

题目大意:合并给定的一些区间,使得它们各个区间之间没有重叠。

题目分析:首先,对给定的区间,按照左边的临界值进行从小到大排序,然后维持一个[left,right]区间。首先,将第一个区间赋给[left,right],然后看第二个区间[x,y],若x<=right,那么合并后的区间应该是[left,max(right,y)], 同时更新[left,right]区间;若x>right,此时就可以将第一个区间保存起来,[left,right]区间更新为第二个区间。一直到最后一个区间遍历完毕,将[left,right]区间保存就可。

代码展示:

class Solution {
public:
    static bool LessSort(Interval a,Interval b){
        return a.start merge(vector& intervals) {
        if(intervals.size()<=1)
            return intervals;
        vector result;
        sort(intervals.begin(),intervals.end(),LessSort);
        int left = intervals[0].start;
        int right = intervals[0].end;
        for(int i=1;i

你可能感兴趣的:(C++,LeetCode,排序,LeetCode)