码迷,mamicode.com
首页 > 其他好文 > 详细

Merge Intervals

时间:2014-09-11 17:13:22      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   ar   for   数据   art   div   

Given a collection of intervals, merge all overlapping intervals.

For example,

Given [1,3],[2,6],[8,10],[15,18],

return [1,6],[8,10],[15,18].

思路:先对输入数据按start递增排序,然后再进行合并。

 1 bool comp( Interval interval1, Interval interval2 ) {
 2     return interval1.start < interval2.start;
 3 }
 4 
 5 class Solution {
 6 public:
 7     vector<Interval> merge( vector<Interval> &intervals ) {
 8         sort( intervals.begin(), intervals.end(), comp );
 9         vector<Interval> ret;
10         for( auto iter = intervals.begin(); iter != intervals.end(); ++iter ) {
11             if( ret.empty() || ret.back().end < iter->start ) {
12                 ret.push_back( *iter );
13             } else {
14                 ret.back().end = max( ret.back().end, iter->end );
15             }
16         }
17         return ret;
18     }
19 };

 

Merge Intervals

标签:style   blog   color   io   ar   for   数据   art   div   

原文地址:http://www.cnblogs.com/moderate-fish/p/3966679.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!