Leetcode-057-插入区间

这题放在56题之后是有道理的,和56题方法相同,在此不再赘述。

class Solution {
public:
    vector<Interval> insert(vector<Interval>& intervals, Interval newInterval) {
        vector<Interval> ans;
        if(intervals.empty())
        {
            ans.push_back(newInterval);
            return ans;
        }
        int k=0,n=intervals.size();
        while(k<n&&intervals[k].start<newInterval.start)
            k++;
        intervals.insert(intervals.begin()+k,newInterval);
        ans.push_back(intervals[0]);
        for(int i=1;i<intervals.size();i++)
        {
            #若下一个区间与上一个区间有overlap,则更新上一区间的结束点
            if(intervals[i].start<=ans.back().end)
                ans.back().end=max(ans.back().end,intervals[i].end);
            #否则直接讲区间加入ans中
            else
                ans.push_back(intervals[i]);
        }
        return ans;
    }
};
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 多年未见,一直愿把月季当玫瑰。 如今相遇,无论月季玫瑰,你是最美。 我爱你。 《花》 ...
    千年一哭阅读 214评论 0 5
  • 我的妈妈是紫色的, 我的妈妈是美丽的, 我的妈妈是一个壁炉,整天给我做饭, 我的妈妈看上去是一个热情好客的厨师。 ...
    小种子教室孙锐鑫阅读 203评论 0 0
  • 又回到了简书。 2015年搭建了自己的博客,写了四五十篇文章,没有公开自己的主页,反而像日记一样守护着。于是文风就...
    VineXio阅读 249评论 0 1
  • 第三章:以终为始 1、以结果导向(两次创造) 在开始的时候,要为结果思考,目标是何,过程中你需要做什么,这个过程就...
    兜兜里带颗糖阅读 169评论 0 0