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; };