LeetCode Insert Interval

 1 /**
 2  * Definition for an interval.
 3  * struct Interval {
 4  *     int start;
 5  *     int end;
 6  *     Interval() : start(0), end(0) {}
 7  *     Interval(int s, int e) : start(s), end(e) {}
 8  * };
 9  */
10 class Solution;
11 bool incmp(struct Interval  a,struct Interval  b)
12      {
13          return  a.start<b.start;
14      }
15 class Solution {
16 public:
17     void mer(vector<Interval> &v,int &i)
18      {
19          if(v[i+1].start<=v[i].end)
20          {
21              if(v[i].end<v[i+1].end)
22                  v[i].end=v[i+1].end;
23              v.erase((vector<Interval>::iterator)(&v[i+1]));
24              i--;
25          }
26      }
27     vector<Interval> insert(vector<Interval> &intervals, Interval newInterval) {
28         // Start typing your C/C++ solution below
29         // DO NOT write int main() function
30         intervals.push_back(newInterval);
31         if(intervals.size()<2)
32              return intervals;
33          sort(intervals.begin(),intervals.end(),incmp);
34        
35          for(int i=0;i<intervals.size()-1;i++)
36          {
37              mer(intervals,i);
38          }
39          return intervals;
40     }
41 };
原文地址:https://www.cnblogs.com/mengqingzhong/p/3114863.html