Ctrl K

Меньше всего прыжков до конца

Средняя
Дан ряд клеток, в клетке i записано lengths[i] — наибольшая длина прыжка вперёд из неё. Из клетки i можно перепрыгнуть в любую клетку от i + 1 до i + lengths[i], не выходя за конец ряда. Вы стоите в клетке 0. Найдите наименьшее число прыжков, за которое можно попасть в последнюю клетку. Гарантируется, что до неё можно добраться.
Пример 1
lengths=[3, 1, 1, 4, 0, 2, 1] → 2

Из клетки 0 прыгаем в клетку 3, а из неё сразу в последнюю, 6. Два прыжка.

Пример 2
lengths=[1, 1, 1, 1] → 3

Каждый прыжок — ровно на одну клетку, всего три.

Пример 3
lengths=[5] → 0

Клетка одна, прыгать не нужно.

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

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