跳跃数组

问题如下:

给你一个非负整数数组 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)

posted @ 2024-05-24 11:04  TW-NLP  阅读(4)  评论(0编辑  收藏  举报