题解 | #奶牛喂养时间#

奶牛喂养时间

https://www.nowcoder.com/practice/db2c7c52df0449b49b36e7fe5364f521

#include <cstdint>
#include <vector>

bool compare(const vector<int>& a, const vector<int>& b){
    return a[0] < b[0];
}

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param intervals int整型vector<vector<>> 
     * @return int整型vector<vector<>>
     */
    vector<vector<int> > mergeTimeIntervals(vector<vector<int> >& intervals) {
        if(intervals.size() < 1) return intervals;
        // 按照喂养时间的开始时间对喂养期间进行升序排序
        sort(intervals.begin(), intervals.end(), compare);
        vector<vector<int> > res;
        res.push_back(intervals.front());  // 默认第一个时间段是合并后的
        for(auto interval :intervals){
            int preEnd = res.back()[1];
            // 如果当前时间段 start <= preEnd ,那么就更新合并后的区间
            if(interval[0] <= preEnd){
                res.back()[1] = max(interval[1], preEnd);
            }
            // 区间不重合就直接将新的区间收集
            else{
                res.push_back({interval[0], interval[1]});
            }
        }
        return res;        
    }
};

#c++#

#贪心#
全部评论

相关推荐

od现在都成这样了&nbsp;就业市场真是crazy
牛客473059135号:没事,我有个朋友是985本硕学计算机的,被华为卡目标院校了简历挂,不过不是od虽然人家拿到一堆别的offer了就挺搞笑的属于是……
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务