题解 | #合并区间#

合并区间

http://www.nowcoder.com/practice/69f4e5b7ad284a478777cb2a17fb5e6a

闭区间的右部分,不断和后面的区间右部分比较并合并

class Solution {
public:
    static bool cmp(Interval& a, Interval& b){
        return a.start<b.start;
    }
    vector<Interval> merge(vector<Interval> &intervals) {
        //按区间左部分值排序
        sort(intervals.begin(), intervals.end(), cmp);
        vector<Interval> res;
        int i=0, n = intervals.size();
        while(i<n){
            int l = intervals[i].start;
            int r = intervals[i].end;
            while(i<n-1 && r >= intervals[i+1].start){
                r = max(intervals[i+1].end, r);
                i++;
            }
            res.push_back({l, r});
            i++;
        }
        return res;
    }
};
全部评论

相关推荐

点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-21 17:16
科大讯飞 算法工程师 28.0k*14.0, 百分之三十是绩效,惯例只发0.9
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务