• Insert Interval


    Description:

    Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessary).

    You may assume that the intervals were initially sorted according to their start times.

    Example 1:
    Given intervals [1,3],[6,9], insert and merge [2,5] in as [1,5],[6,9].

    Example 2:
    Given [1,2],[3,5],[6,7],[8,10],[12,16], insert and merge [4,9] in as [1,2],[3,10],[12,16].

    This is because the new interval [4,9] overlaps with [3,5],[6,7],[8,10].

    Code:

    vector<Interval> insert(vector<Interval>& intervals, Interval newInterval) {
             vector<Interval>result;
            int low = 0, high = intervals.size()-1;
            while (low <= high)
            {
                int mid = (low+high)/2;
                if (intervals[mid].start<=newInterval.start)
                    low = mid+1;
                else
                    high = mid-1;
            }
            vector<Interval>::iterator itr = intervals.begin();
            intervals.insert(itr+low, newInterval);//在迭代器前插入,即在第low+1个元素前插入
            
            result.push_back(intervals[0]);
            for (int i = 1; i < intervals.size(); ++i)
            {
                int temp = result.size();
                if (intervals[i].start <= result[temp-1].end)
                    result[temp-1].end = max(intervals[i].end,result[temp-1].end);
                else
                    result.push_back(intervals[i]);
            }
            return result;
        }

  • 相关阅读:
    SDN——实验脚本4-1:ovsSingleBr.py
    SDN——实验脚本4-2:ovsMultiBr.py
    SDN——实验脚本4-3:ovsVLAN.py
    C语言I博客作业01
    C语言I作业09
    C语言I作业08
    C语言I作业07
    C语言I作业06
    C语言I作业05
    C语言I博客作业04
  • 原文地址:https://www.cnblogs.com/happygirl-zjj/p/4748264.html
Copyright © 2020-2023  润新知