57. Insert Interval(js)

57. Insert Interval

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:

Input: intervals = [[1,3],[6,9]], newInterval = [2,5]
Output: [[1,5],[6,9]]

Example 2:

Input: intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8]
Output: [[1,2],[3,10],[12,16]]
Explanation: Because the new interval [4,8] overlaps with [3,5],[6,7],[8,10].
题意:给定一个区间组和一个新的区间,再合并有重叠的区间
代码如下:
/**
 * Definition for an interval.
 * function Interval(start, end) {
 *     this.start = start;
 *     this.end = end;
 * }
 */
/**
 * @param {Interval[]} intervals
 * @param {Interval} newInterval
 * @return {Interval[]}
 */
var insert = function(intervals, newInterval) {
    var len=intervals.length;
    var curr=0;
    var res=[];
    while(curr<len && intervals[curr].end<newInterval.start){
        res.push(intervals[curr++]);
 
    }
    while(curr<len && intervals[curr].start<=newInterval.end){
        newInterval.start=Math.min(intervals[curr].start,newInterval.start);
        newInterval.end=Math.max(intervals[curr].end,newInterval.end);
        ++curr;
    }
    res.push(newInterval);
    while(curr<len){
        res.push(intervals[curr++]);

    }
    return res;
};

猜你喜欢

转载自www.cnblogs.com/xingguozhiming/p/10458511.html
今日推荐