跳跃数组
问题如下:
给你一个非负整数数组 nums
,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。
判断你是否能够到达最后一个下标,如果可以,返回 true
;否则,返回 false
。
class Solution: def canJump(self, nums: List[int]) -> bool: max_dis=0 for idx_i,value_i in enumerate(nums): if max_dis>=idx_i and idx_i+value_i>max_dis: #如果可以到达该位置,并且当前位置+最大跳跃>最大跳跃位置 max_dis=idx_i+value_i return max_dis>=idx_i
时间复杂度O(n)
空间复杂度O(1)