0
点赞
收藏
分享

微信扫一扫

力扣-56题 合并区间(C++)- 先排序,后比较

徐一村 2022-02-04 阅读 69

题目链接:https://leetcode-cn.com/problems/merge-intervals/
题目如下:
在这里插入图片描述

class Solution {
public:
    vector<vector<int>> merge(vector<vector<int>>& intervals) {
        vector<vector<int>> ans;
        if(intervals.size()==0) return ans;
        sort(intervals.begin(),intervals.end());//对数组的首个元素进行排序

        int l=intervals[0][0],r=intervals[0][1];
        for(int i=1;i<intervals.size();i++){
            if(r<intervals[i][0]){//比较区间a的右边和区间b的左边
                ans.push_back({l,r});
                l=intervals[i][0],r=intervals[i][1];
            }else {//进而比较区间a的右边和区间b的右边
                r=max(r,intervals[i][1]);
            }
        }
        ans.push_back({l,r});
        return ans;
    }
};
举报

相关推荐

0 条评论