Вступить в клуб →
средняяpythonЖадные алгоритмы и интервалы

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

🔒 Проверка ответа — для участников клуба

  • Автотесты прямо в браузере
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела