cur,last分别表示当前这一步,上一步能到达的最大下标位置
- 如果当前下标i>last: 步数加1 更新last=cur
- 否则:更新cur
由于假设能到最后位置,所以省去了判断是否能到。
class Solution:
def jump(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
n=len(nums)
cur=last=step=0
for i in range(n):
if i>last:
step+=1
last=cur
cur=max(cur,i+nums[i])
return step