zoukankan      html  css  js  c++  java
  • 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;
    

      

  • 相关阅读:
    linux之查找文件,目录命令
    linux文件操作常用命令
    linux打包解包压缩解压命令
    linux目录操作常用命令
    php读取文件行数方法
    前端入门之——javascript day8 DOM对象(DHTML)
    前端入门之——javascript day8
    前端入门之——css day5 作业。编写一个简单的网页
    前端入门之——css day4
    前端入门之——css day3
  • 原文地址:https://www.cnblogs.com/yanqi110/p/5018961.html
Copyright © 2011-2022 走看看