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

Insert Interval

时间:2016-08-02 14:56:40      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

技术分享
 struct Interval{
          int start;
          int end;
          Interval() :start(0), end(0){}
          Interval(int s, int e) :start(s), end(e){}
      };

      vector<Interval> insert(vector<Interval> &intervals, Interval newInterval)
      {
          //关键是搞清不同元素之间是否有重叠
          vector<Interval>::iterator it = intervals.begin();
          while (it != intervals.end())
          {
              if (newInterval.end > it->start)
              {
                  intervals.insert(it, newInterval);
                  return intervals;
              }
              else if (it->end > newInterval.start)
              {
                  it++;
                  continue;
              }
              else
              {
                  newInterval.start = min(it->start, newInterval.start);
                  newInterval.end = min(it->end, newInterval.end);
              }
          }
          //如果将最后一个元素归并了
          intervals.insert(intervals.end(), newInterval);
          return intervals;
      }
View Code

 

Insert Interval

标签:

原文地址:http://www.cnblogs.com/573177885qq/p/5729183.html

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