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