57. Insert Interval

/**
 * 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) {
        int i = 0;
        int overlap=0;
        while(i < intervals.size()) {
            if(intervals[i].end<newInterval.start){
            }else if(intervals[i].start>newInterval.end){
                break;
            }else{
                newInterval.start=min(newInterval.start,intervals[i].start);
                newInterval.end=max(newInterval.end,intervals[i].end);
                overlap++;
            }
            i++;
        }
        intervals.insert(intervals.begin()+i,newInterval);
        if (overlap > 0) intervals.erase(intervals.begin()+i-overlap,intervals.begin()+i);
        return intervals;
    }
};

results matching ""

    No results matching ""