Ctrl K

Как можно больше прыжков

Средняя
Через реку в ряд лежат камни, heights[i] — высота i-го камня. Лягушка сидит на камне 0 и хочет попасть на последний камень. За один прыжок она перемещается только вперёд — с камня i на любой камень j > i, — причём высоты камней должны отличаться не больше чем на step: |heights[j] - heights[i]| ≤ step. Лягушке нравится прыгать, поэтому она хочет добраться до последнего камня за как можно **большее** число прыжков. Верните это число или -1, если до последнего камня не добраться вовсе.
Пример 1
heights=[0, 5, 2, 3, 9, 1], step=2 → 3

Лучший путь: 0 → 2 → 3 → 1 (индексы 0, 2, 3, 5), три прыжка. Камни 5 и 9 слишком далеко по высоте от соседей.

Пример 2
heights=[4, 10, 20], step=5 → -1

Ни с одного камня не допрыгнуть до последнего (высота 20), поэтому ответ −1.

Пример 3
heights=[7, 7, 7, 7], step=0 → 3
Ограничения
  • 2 ≤ len(heights) ≤ 1000
  • -10⁹ ≤ heights[i] ≤ 10⁹
  • 0 ≤ step ≤ 2·10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиМеньше всего прыжков до конца СредняяСамая прибыльная серия дней СредняяДобраться до последней клетки СредняяМаршруты тележки по складу СредняяДешёвый маршрут из угла в угол Средняя
загружаем Python…
Вход
heights=[0, 5, 2, 3, 9, 1], step=2
Ожидается
3

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