Insert Interval

来源:互联网 发布:淘宝收藏店铺链接 编辑:程序博客网 时间:2024/06/03 17:13
/** * Definition for an interval. * struct Interval { *     int start; *     int end; *     Interval() : start(0), end(0) {} *     Interval(int s, int e) : start(s), end(e) {} * }; */class Solution {public:    vector<Interval> insert(vector<Interval>& intervals, Interval newInterval)     {        vector<Interval> result;        if(intervals.empty())        {            result.push_back(newInterval);            return result;        }        const int n = intervals.size();        int i = 0;        while(i < n)        {            if(intervals[i].end < newInterval.start)            {                result.push_back(intervals[i]);            }            else if(intervals[i].start > newInterval.end)            {                result.push_back(newInterval);                while(i < n)                {                    result.push_back(intervals[i]);                    ++i;                }                return result;            }            else            {                newInterval.start = min(newInterval.start,intervals[i].start);                newInterval.end = max(newInterval.end,intervals[i].end);                            }            ++i;                    }        result.push_back(newInterval)        return result;            }};

0 0