首页 > 其他 > 详细

LeetCode() Insert Interval

时间:2015-12-04 14:21:16      阅读:319      评论:0      收藏:0      [点我收藏+]
auto compare = [] (const Interval &intv1, const Interval &intv2)
                          { return intv1.end < intv2.start; };
        auto range = equal_range(intervals.begin(), intervals.end(), newInterval, compare);
        auto itr1 = range.first, itr2 = range.second;
        if (itr1 == itr2) {
            intervals.insert(itr1, newInterval);
        } else {
            itr2--;
            itr2->start = min(newInterval.start, itr1->start);
            itr2->end = max(newInterval.end, itr2->end);
            intervals.erase(itr1, itr2);
        }
        return intervals;

  这道题我本科的时候肯定做过,现如今真的变笨了

int left=0,right=intervals.size();
        for(int i=0;i<intervals.size();i++)
            if(newInterval.start>intervals[i].end)
                left=i+1;
        for(int i=intervals.size()-1;i>=0;i--)
            if(newInterval.end<intervals[i].start)
                right=i;   //the right is the one after the last one

        //if the new interval is in the head,then insert as new head
        if(right==0)
        {
            intervals.insert(intervals.begin(),newInterval);
            return intervals;
        }
        //if the new interval is in the tail,then insert as new tail 
        if(left==intervals.size())
        {
            intervals.insert(intervals.end(),newInterval);
            return intervals;
        }
        //construct the newinterval
        newInterval.start=min(newInterval.start,intervals[left].start);
        newInterval.end=max(newInterval.end,intervals[right-1].end);

        //firt erase the old intervals,then insert one new interval
        intervals.erase(intervals.begin()+left,intervals.begin()+right);
        intervals.insert(intervals.begin()+left,newInterval);

        return intervals;

  

LeetCode() Insert Interval

原文:http://www.cnblogs.com/yanqi110/p/5018961.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!