给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。
判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。
解题思路
每个位置算自己最远能跳到哪里,那么倒过来考虑,更新需要跳到的位置即可
AC代码
python
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