解题思路
每个位置算自己最远能跳到哪里,那么倒过来考虑,更新需要跳到的位置即可
AC代码
class Solution:
def canJump(self, nums: List[int]) -> bool:
if len(nums) < 2:
return True
nums = [i + v for i, v in enumerate(nums)]
target = len(nums) - 1
for i in range(len(nums) - 2, -1, -1):
if nums[i] >= target:
target = i
return target == 0