Ctrl K

Допрыгать до нуля

Средняя
Дан массив неотрицательных чисел hops и стартовая клетка start. Стоя в клетке i, можно прыгнуть ровно на hops[i] клеток влево или ровно на hops[i] клеток вправо — в клетку i - hops[i] или i + hops[i]. Выпрыгивать за пределы массива нельзя. Верните True, если, начав в клетке start, можно оказаться в какой-нибудь клетке, где записан 0, и False иначе.
Пример 1
hops=[3, 1, 2, 0, 4, 1], start=5 → True

Путь 5 → 4 → 0 → 3: из клетки 5 прыжок на 1 влево, из 4 — на 4 влево, из 0 — на 3 вправо, а в клетке 3 записан ноль.

Пример 2
hops=[1, 2, 0, 2, 1], start=3 → False

Из клетки 3 можно попасть только в 1, а из 1 — только обратно в 3. Ноль в клетке 2 недостижим.

Пример 3
hops=[0], start=0 → True

Мы уже стоим на нуле.

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

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