Ctrl K

Добавить перекладины

Средняя
Вы стоите на полу (высота 0) у лестницы. Высоты её перекладин заданы строго возрастающим списком rungs, и нужно забраться на самую верхнюю. За один шаг можно подняться на следующую перекладину, только если она выше текущего места (пола или перекладины) не более чем на reach. На любую целую положительную высоту, где перекладины ещё нет, можно прибить новую. Верните наименьшее число перекладин, которые придётся добавить, чтобы добраться до верха.
Пример 1
rungs=[2, 4, 11], reach=3 → 2

С пола до 2 и с 2 до 4 дотянуться можно. Между 4 и 11 зазор 7: нужны две новые перекладины, например на 7 и 10.

Пример 2
rungs=[5, 6, 7], reach=1 → 4

Шаг — ровно одна единица, поэтому до первой перекладины на высоте 5 не хватает перекладин 1, 2, 3 и 4.

Пример 3
rungs=[4, 8, 12], reach=4 → 0

Все зазоры ровно 4 — добавлять ничего не нужно.

Ограничения
  • 1 ≤ len(rungs) ≤ 10⁵
  • 1 ≤ rungs[i] ≤ 10⁹
  • 1 ≤ reach ≤ 10⁹
  • rungs строго возрастает
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиДве доски и вода СредняяМеньше всего прыжков до конца СредняяДобраться до последней клетки СредняяСколько угодно сделок СредняяОткуда начать круг Средняя
загружаем Python…
Вход
rungs=[2, 4, 11], reach=3
Ожидается
2

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