<pre name="code" class="cpp">/**
* Definition of Interval:
* classs Interval {
* int start, end;
* Interval(int start, int end) {
* this->start = start;
* this->end = end;
* }
*/
class Solution {
public:
static bool compare(const Interval &a, const Interval &b)
{
return a.start < b.start;
} // 规定了下面intervals进行排序(sort)时遵循的规则,即根据start升序排列
/**
* @param intervals: interval list.
* @return: A new interval list.
*/
vector<Interval> merge(vector<Interval> &intervals) {
// write your code here
vector<Interval> result;
int n = intervals.size();
if(n < 1){
return result;
}
sort(intervals.begin(), intervals.end(), compare); //根据start升序排列
int left = intervals[0].start;
int right = intervals[0].end;
for(int i = 1; i < n; i++){
if(right >= intervals[i].start){
right = max(right,intervals[i].end);
}
else{
result.push_back(Interval(left, right));
left = intervals[i].start;
right = intervals[i].end;
}
}
result.push_back(Interval(left, right)); //!!!注意的地方
return result;
}
};
合并区间
最新推荐文章于 2021-03-22 03:53:30 发布