class Solution(object):
def insert(self,intervals,newIntervals):
"""
给你一个 无重叠的 ,按照区间起始端点排序的区间列表。
在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。
:param intervals:
:param newIntervals:
:return:
"""
res = []
inv_len = len(intervals)
i = 0
while i < inv_len:
if newIntervals[1] < intervals[i][0]:
res.append(newIntervals)
res.extend(intervals[i:])
return res
elif newIntervals[0] > intervals[i][1]:
res.append(intervals[i])
else:
newIntervals[0] = min(newIntervals[0], intervals[i][0])
newIntervals[1] = max(newIntervals[1], intervals[i][1])
i += 1
res.append(newIntervals)
return res
if __name__ == '__main__':
inv = Solution()
intervals = [[2, 5], [7, 9], [10, 11], [13, 14], [19, 29]]
newIntervals = [15, 16]
res = inv.insert(intervals, newIntervals)
print(res)
将列表插入无重叠区间
最新推荐文章于 2025-05-01 23:36:42 发布