首页 > 其他 > 详细

Insert Interval

时间:2016-08-02 14:56:20      阅读:116      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!