31_leetcode_ Insert Interval

来源:互联网 发布:商务部数据 编辑:程序博客网 时间:2024/05/18 09:08

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]


1:当数组为null的时候;2:遍历数组,并检测当前interval与数组当前interval之间的关系并做出相应的判断;3:遍历完成后,把最后的interval保存到数组中

    vector<Interval> insert(vector<Interval> &intervals, Interval newInterval) {        vector<Interval> result;        if(intervals.size() == 0)        {            result.push_back(newInterval);            return result;        }                int size = (int)intervals.size();                for(int i = 0; i < size; i++)        {            if(newInterval.end < intervals[i].start)            {                result.push_back(newInterval);                newInterval.start = intervals[i].start;                newInterval.end = intervals[i].end;            }            else if(newInterval.end <= intervals[i].end)            {                newInterval.end = intervals[i].end;                                if(newInterval.start > intervals[i].start)                {                    newInterval.start = intervals[i].start;                }            }            else            {                if(newInterval.start > intervals[i].end)                {                    result.push_back(intervals[i]);                }                else if (newInterval.start > intervals[i].start)                {                    newInterval.start = intervals[i].start;                }            }        }                result.push_back(newInterval);                return result;    }


0 0
原创粉丝点击