解题思路1:

从头往后找每一个为0的元素,判断这个0能够跳过,所有的0都能跳过,则返回True,否则返回False

解题思路2:

从前往后遍历数组,设置一个访问到当前位置i时最远可调到的距离maxlengh,maxlengh如果大于等于数组长度,则返回True,如果访问的位置i赶上maxlengh时,则说明无法到达数组最后一个位置,则返回False。

解题思路2对应的代码如下:

class Solution:
    def canJump(self, nums):
        max_length = 0
        for i in range(len(nums)):
            if i>max_length:
                return False
            max_length = max(max_length, i+nums[i])
            if max_length>=len(nums):
                return True
        return True

已测试通过