• LeetCode() Insert Interval


    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;
    

      

  • 相关阅读:
    js01
    js---18miniJquery
    js---17继承中方法属性的重写
    js---16继承
    js---16原型链
    js---15深拷贝浅拷贝 原型链
    js---14公有私有成员方法
    js---13 this call apply
    js---12对象创建方式,构造器,原型
    ESXi导出的CentOS7 ovf文件导入到workstation 无法打开GUI登录界面的问题解决方案
  • 原文地址:https://www.cnblogs.com/yanqi110/p/5018961.html
Copyright © 2020-2023  润新知