### 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:
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]
.题目大意:合并数组间隔
代码:
package Array; import java.util.ArrayList; import java.util.List; /** * @Author OovEver * @Date 2017/12/1 20:17 */ public class LeetCode57 { public List<Interval> insert(List<Interval> intervals, Interval newInterval) { List<Interval> result = new ArrayList<>(); for (Interval i : intervals) { if (newInterval == null || i.end < newInterval.start) { result.add(i); } else if (i.start > newInterval.end) { result.add(newInterval); result.add(i); newInterval = null; } else { newInterval.start = Math.min(i.start, newInterval.start); newInterval.end = Math.max(i.end, newInterval.end); } } if (newInterval != null) result.add(newInterval); return result; } }