Menu
CoddyTech

Jump Game

Ты находишься на индексе 0 массива nums. С индекса i можно прыгнуть вперёд на любое количество шагов от 1 до nums[i] включительно, поэтому nums[i] — это длина самого длинного прыжка отсюда, а 0 означает, что двигаться нельзя. Верни true, если какая-либо последовательность прыжков приводит к последнему индексу, и false в противном случае.

Функция

canJump(nums: integer-array) → boolean
numsinteger-array
самый длинный прыжок, который можно сделать из каждого индекса
Возвращаетboolean
true, если вы можете попасть на последний индекс, начиная с индекса 0, иначе false

Ограничения

  • 1 ≤ nums.length ≤ 104
  • 0 ≤ nums[i] ≤ 105
  • Прыжок может быть короче, чем nums[i], поэтому длинный прыжок никогда не заставит вас перескочить через последний индекс.

Примеры

Ввод
nums = [2, 0, 3, 1, 0, 2]
Вывод
true
Пояснение
Из индекса 0 можно перейти к индексу 1 или 2. В индексе 1 находится 0, и это тупик, а в индексе 2 находится 3, откуда можно перейти к индексу 5 — последнему индексу.

lock icon+18 скрытых тестов при отправке

challenge icon

Дополнительный вопрос

Подсчитайте количество различных последовательностей прыжков, которые приводят на последний индекс, по модулю 10^9+7, всё ещё за время O(n).

Сбросить код
def canJump(nums):
    # Напишите код здесь
Тестовые случаи

Случай 1

Случай 2

Случай 3

Ввод

nums = [2, 0, 3, 1, 0, 2]

Ожидается

true