题解 | #奶牛喂养时间#
奶牛喂养时间
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++#
#贪心#