给出一个无重叠的 ,按照区间起始端点排序的区间列表。
在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。
class Solution:
def merge(self,intervals):
if not intervals:
return []
intervals.srt(key=lambda x: x[0])
res=[]
for inter in intervals:
if len(res)==0 or inter[0]>res[-1][1]:
res.append(inter)
else:
res[-1][1]=max(res[-1][1],inter[1])
return res
class Solution:
def insert(self,intervals,newinterval):
if not newinterval:
return intervals
if not intervals:
return newinterval
i=0
n=len(intervals)
while i<n and intervals[i][1]<newinterval[0]:
i+=1
tmp=i
while i<n and intervals[i][0]<newinterval[1]:
newinterval[0]=min(intervals[i][0],newinterval[0])
newinterval[1]=max(intervals[i][1],newinterval[1])
i+=1
else:
del intervals[tmp:i]
intervals.insert(tmp,newinterval)
retunr intervals