classSolution:definsert(self,intervals: List[List[int]],newInterval: List[int]) -> List[List[int]]: n =len(intervals)if n ==0:#序列为空,直接插入返回return [newInterval] res = [] i =0#处理new之前的非交叠段,直接加入reswhile i < n and newInterval[0]> intervals[i][1]: res.append(intervals[i]) i +=1#此时进入交叠段#走出交叠段之前,每段合并一次while i < n and newInterval[1]>= intervals[i][0]: newInterval = [min(intervals[i][0], newInterval[0]),\max(intervals[i][1], newInterval[1])] i +=1#将合并后的交叠段写入 res.append(newInterval)#剩下的非交叠段,直接写入for i inrange(i, n): res.append(intervals[i])return res