merge intervals

 1 bool cmp(Interval a,Interval b)
 2 {
 3     return a.start < b.start ;
 4 }
 5 class Solution {
 6 public:
 7     vector<Interval> merge(vector<Interval> &intervals) {
 8         // Start typing your C/C++ solution below
 9         // DO NOT write int main() function
10         vector<Interval> v;
11         if( intervals.size() == 1 || intervals.empty() ) return intervals;
12         
13         sort(intervals.begin(),intervals.end(),cmp);
14         
15         for(int i=0; i<intervals.size() ;  )
16         {  
17            Interval newInterval = intervals[i];
18            while( i+1 < intervals.size() && newInterval.end >= intervals[i+1].start)
19            {
20                newInterval.end = max( newInterval.end,intervals[i+1].end);
21                i++;
22            }
23            v.push_back(newInterval);
24            i++;
25 
26         }
27         return v;       
28     }
29 };

 

posted on 2013-07-04 20:53  jumping_grass  阅读(148)  评论(0)    收藏  举报

导航