leetcode57.Insert Interval
题目要求
1 | Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessary). |
给定一组顺序排列且相互之间没有重叠的区间,输入一个区间,将它插入到当前的区间数组中,并且将需要合并的区间合并,之后返回插入并且合并后的区间。
思路和代码
任何一个区间数组中的区间可以划分为三个类型,位于需要被合并的区间的前面的区间,需要被合并的区间,位于需要被合并的区间后面的区间。我们将这三个类型的区间分别标注为类型1,类型2,类型3。
区间类型1: 当前区间的最大值小于插入区间的最大值
区间类型3: 当前区间的最小值大于插入区间的最大值
区间类型2: 判断比较复杂,可以通过非区间类型1和区间类型3来归类。在遇到区间类型二时,要更新插入区间的最大值和最小值
代码实现如下:
方法一:
1 | public List<Interval> insert(List<Interval> intervals, Interval newInterval) { |
方法二:
1 | public List<Interval> insert2(List<Interval> intervals, Interval newInterval) { |