Добавить в корзинуПозвонить
Найти в Дзене
Максим

Решаю Leetcode TI150 #55

Jump Game Вам дан целочисленный массив nums. Изначально вы располагаетесь на первом индексе массива, и каждый элемент массива представляет собой максимальную длину вашего прыжка в этой позиции.
Возвращается true, если вы можете достичь последнего индекса, или false в противном случае.
Первая задумка которую начал реализовывать - создать переменную "точка прыжка" - в которую буду записывать настоящее перемещение, а с помощью цикла - перебирать все оставшиеся возможные варианты.
После чего упёрся в то, что вообще не понимаю как правильно это сделать, то есть сами прыжки проходят верно, но в той ситуации, когда например ты прыгнул на тройку и на третий шаг от неё 0, то нужно сделать шаг назад и идти В итоге все вообще поменял и так решил:
max_index = 0
for i in range(len(fly)):
if i > max_index:
return False
max_index = max(max_index, i + fly[i])
if max_index >= len(fly) - 1:
return True

Jump Game

Вам дан целочисленный массив nums. Изначально вы располагаетесь на первом индексе массива, и каждый элемент массива представляет собой максимальную длину вашего прыжка в этой позиции.

Возвращается true, если вы можете достичь последнего индекса, или false в противном случае.

Первая задумка которую начал реализовывать - создать переменную "точка прыжка" - в которую буду записывать настоящее перемещение, а с помощью цикла - перебирать все оставшиеся возможные варианты.

После чего упёрся в то, что вообще не понимаю как правильно это сделать, то есть сами прыжки проходят верно, но в той ситуации, когда например ты прыгнул на тройку и на третий шаг от неё 0, то нужно сделать шаг назад и идти

В итоге все вообще поменял и так решил:

max_index = 0

for i in range(len(fly)):
if i > max_index:
return False

max_index = max(max_index, i + fly[i])

if max_index >= len(fly) - 1:
return True