这题主要考虑在i之前的所有节点是否都会遇到中途的零,遇到中途的零就完不成
如果有节点路径可以跨过去所有中途的0就说明可以到达终点
所以贪心选择所有i之前能到达的最长路径
def canJump(self, nums):
"""
:type nums: List[int]
:rtype: bool
"""
n = len(nums)
maxpos = 0
for i in range(n):
maxpos = max(maxpos,i+nums[i]) #对于每一步计算其能到达的最大位置
if maxpos == i: #看当他原地不动时如果到达末尾就满足
return maxpos >= n-1 #没到达就不满足
return True #遇不到0一定能到达末尾