SprintCode.pro

Подготовка к алгоритмическим задачам

Super

Jump Game (Прыжки по массиву)

Описание: Дан массив, где каждый элемент — максимальная длина прыжка из этой позиции. Начиная с первого индекса, определите, можно ли добраться до последнего.

Пример 1:

Вход: nums = [2,3,1,1,4]
Выход: true
Объяснение: Прыгаем 0 → 1 → 4

Пример 2:

Вход: nums = [3,2,1,0,4]
Выход: false
Объяснение: На индексе 3 стоит ноль, дальше не пройти

Ограничения:

1 <= nums.length <= 10⁴

0 <= nums[i] <= 10⁵

Рекомендуемая временная и пространственная сложность

Стремитесь к O(n) по времени и O(1) по памяти.


Подсказка 1

Перебор всех вариантов прыжков экспоненциален. Нужен один проход.


Подсказка 2

Идите слева направо и храните максимальный индекс, до которого можно добраться.


Подсказка 3

Если текущий индекс превысил достижимый максимум — дальше пути нет.

Задача на жадный алгоритм. Учит видеть, что достаточно отслеживать максимальную достижимую позицию, вместо перебора всех вариантов прыжков.

Входные параметры :

[2,3,1,1,4]

Ожидаемый результат

true