Ctrl K

По две отметки на отрезок

Сложная
На числовой прямой заданы отрезки: ranges[i] = [a, b] — все целые числа от a до b включительно. Нужно поставить отметки в целых точках так, чтобы в каждый отрезок попало **хотя бы две** отметки. Верните наименьшее возможное число отметок.
Пример 1
ranges=[[1, 4], [2, 6], [5, 8]] → 4

Например, отметки 3, 4, 7, 8: в [1, 4] попадают 3 и 4, в [2, 6] — тоже 3 и 4, в [5, 8] — 7 и 8. Трёх не хватит: [1, 4] и [5, 8] не пересекаются, и каждому нужно по две своих отметки.

Пример 2
ranges=[[0, 5], [0, 5], [3, 4]] → 2

Отметки 3 и 4 лежат во всех трёх отрезках.

Пример 3
ranges=[[1, 3], [3, 5]] → 3
Ограничения
  • 1 ≤ len(ranges) ≤ 5·10⁴
  • ranges[i] — пара [a, b]
  • 0 ≤ a < b ≤ 10⁸
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиНаращиваем капитал проектами СложнаяРазличимые сокращения слов СложнаяБольше заказов к сроку СложнаяСамый узкий отрезок для всех списков СложнаяПартии для сортировки с повторами Сложная
загружаем Python…
Вход
ranges=[[1, 4], [2, 6], [5, 8]]
Ожидается
4

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