57. Insert Interval
[Hard]
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]
.
NOTE: input types have been changed on April 15, 2019. Please reset to default code definition to get new method signature.
题意:插入区间
思路:在上一题的基础上将需要插图的区间add进列表就行
上一题:56:https://blog.youkuaiyun.com/sinat_37341950/article/details/108256045
代码:
#57
class Solution:
def insert(self, intervals,newInterval):
new_list = []
intervals.append(newInterval)
if len(intervals)==1 or len(intervals)==0:
return intervals
intervals.sort()
new_list.append([intervals[0][0],intervals[0][1]])
j = 0
for i in range(1,len(intervals)):
if new_list[j][1] >= intervals[i][0]:
new_list.append([min(new_list[j][0],intervals[i][0]),max(new_list[j][1],intervals[i][1])])
del new_list[-2]
else:
new_list.append([intervals[i][0],intervals[i][1]])
j = j + 1
return new_list