Ctrl K

Минимум записей для полного матча

Средняя
Матч длился duration секунд, и его снимали несколько операторов. Каждая запись описана парой [start, end] в массиве clips: она покрывает отрезок матча с start по end секунду. Записи могут перекрываться и быть разной длины. Из записей можно вырезать любые куски, так что перекрытия не мешают. Нужно собрать полную трансляцию — отрезок [0, duration] — использовав как можно меньше записей. Верните минимальное число записей, которое для этого понадобится, или -1, если какую-то часть матча не снял никто.
Пример 1
clips=[[0, 3], [2, 6], [5, 8], [1, 7]], duration=8 → 3

Ни одна запись, начинающаяся с 0, не идёт дальше 3-й секунды, а из записей, начинающихся не позже 3-й, дальше всех доходит [1, 7]. Значит, нужна и третья: например, [0, 3], [1, 7], [5, 8].

Пример 2
clips=[[0, 2], [3, 5]], duration=5 → -1

Промежуток между 2-й и 3-й секундой не снят ни одной камерой, поэтому ответ -1.

Пример 3
clips=[[0, 4], [0, 9], [4, 9]], duration=9 → 1
Ограничения
  • 1 ≤ len(clips) ≤ 100
  • 0 ≤ start ≤ end ≤ 100
  • 1 ≤ duration ≤ 100
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиМеньше всего прыжков до конца СредняяДобраться до последней клетки СредняяСколько угодно сделок СредняяСамая длинная «качель» СредняяОтменить как можно меньше встреч Средняя
загружаем Python…
Вход
clips=[[0, 3], [2, 6], [5, 8], [1, 7]], duration=8
Ожидается
3

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 89 тестов на сервере, включая скрытые.