class Solution:
def canJump(self, nums: List[int]) -> bool:
end = 0 #当前能到达的距离
farthest = 0 #向前探测[i,end]所能到达的最远距离
for i in range(len(nums)-1):
farthest = max(i+nums[i], farthest) #更新最远距离
if i == end: #走了一步
end = farthest #更新能到达的距离
return end >= len(nums)-1