【LeetCode】每日一题:跳跃游戏

给你一个非负整数数组 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
相关推荐
Ven%5 分钟前
从单轮问答到连贯对话:RAG多轮对话技术详解
人工智能·python·深度学习·神经网络·算法
山楂树の6 分钟前
爬楼梯(动态规划)
算法·动态规划
谈笑也风生10 分钟前
经典算法题型之复数乘法(二)
开发语言·python·算法
智算菩萨14 分钟前
强化学习从单代理到多代理系统的理论与算法架构综述
人工智能·算法·强化学习
lhn14 分钟前
大模型强化学习总结
算法
Gigavision29 分钟前
MMPD数据集 最新Mamba算法 源码+数据集 下载方式
算法
先知后行。35 分钟前
python的类
开发语言·python
Xの哲學38 分钟前
Linux UPnP技术深度解析: 从设计哲学到实现细节
linux·服务器·网络·算法·边缘计算
歌_顿38 分钟前
GPT 系列学习总结(1-3)
算法
业精于勤的牙41 分钟前
最长特殊序列(三)
算法