给你一个非负整数数组 nums ,你最初位于数组的第一个位置。
数组中的每个元素代表你在该位置可以跳跃的最大长度。
你的目标是使用最少的跳跃次数到达数组的最后一个位置。
假设你总是可以到达数组的最后一个位置。
提示:
1 <= nums.length <= 104
0 <= nums[i] <= 1000
在遍历数组时,我们不访问最后一个元素,这是因为在访问最后一个元素之前,我们的边界一定大于等于最后一个位置,否则就无法跳到最后一个位置了。如果访问最后一个元素,在边界正好为最后一个位置的情况下,我们会增加一次「不必要的跳跃次数」,因此我们不必访问最后一个元素。
这就是为啥for循环为: for i in range(len(nums)-1):
class Solution(object):
def jump(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
maxs=0
step=0
end=0
for i in range(len(nums)-1):
maxs=max(nums[i]+i,maxs)
if(i==end):
end=maxs
step=step+1
return step
exam=Solution()
print("答案:")
print(exam.jump([2,3,1,1,4]))