力扣刷题
跳跃游戏
给定数字列表,从下标为零开始,到列表中最后一个元素所需的最小步数,每步长度由下标对应的元素决定
例如:[3,5,6,1,1,4,2,1,9,1]
从下标为0的元素3开始,第一步范围则为[1,3]
后面每步的最大距离为下标对应的元素值确定
class Solution:
def jump(self, nums) -> int:
l = len(nums) - 1
i = 0
max = 0
count = 0
while i < l:
count += 1
for j in range(1, nums[i] + 1):
# 此处j为能此步能走的距离
if i + j < l:
if j + nums[i + j] > max:
# 计算此步能走到距离加下一步能走的最远距离
max = j + nums[i + j]
k = j
# [2,3,1,1,4]
else:
k = l
break
i += k
max = 0
else:
return count
a = Solution()
print(a.jump([2, 3, 1, 1, 4]))