merge_intervals: слияние пересекающихся и касающихся отрезков
Напишите функцию merge_intervals(intervals: list[list[int]]) -> list[list[int]].
Вход. Список интервалов, каждый — список из двух целых [start, end], причём start <= end. Список не обязательно отсортирован.
Выход. Новый список слитых интервалов, отсортированный по левой границе. Каждый элемент — список из двух чисел.
Правила слияния. Интервалы закрытые, касание считается пересечением: [1, 2] и [2, 3] сливаются в [1, 3]. Вложенный интервал поглощается: [1, 10] и [2, 3] дают [1, 10].
Поведение на краевых входах.
- Пустой список — вернуть пустой список.
- Один интервал — вернуть его же в списке.
- Разрыв между интервалами сохраняется:
[1, 6]и[8, 10]не сливаются.
заготовка решения
def merge_intervals(intervals: list[list[int]]) -> list[list[int]]:
# ваш код
pass