merge interval

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

 

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

导航