给出一个无重叠的 ,按照区间起始端点排序的区间列表。
在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。
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