class Solution: def jump(self , A): maxpos = 0 cur = 0 # 表示当前所在位置,可能会表示数组不存在的位置 step = 0 for i in range(len(A) - 1): # 第一次循环,i与end都为0,所以一定会进行跳跃,最后一个位置不需要跳跃,所以不需要遍历到最后一个位置 maxpos = max(maxpos, A[i] + i) # 统计当前能跳跃到的最远位置 if i == end: # 第一次循环,跳跃到下标为A[0]的位置(贪心),在以后的循环中,当i再次与cur相等时,说明需要再次跳跃 step += 1 cur = maxpos # 跳跃到当前能跳跃到的最远位置,不一是依据A[当前位置]进行跳跃 return step