【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
相关推荐
Code额14 分钟前
Python 连接 DeepSeek API,OpenAI
开发语言·python·ai·ai编程
-凌凌漆-22 分钟前
【freertos】Task创建(v2)
java·开发语言·算法
Nil20844 分钟前
leetcode 24两两交换链表中的节点
算法·leetcode·链表
.格子衫.1 小时前
033动态规划之状态压缩DP——算法备赛
算法·动态规划
ysa0510301 小时前
c++常用自带函数用法与注意
c++·笔记·算法
AAA@峥1 小时前
Python 基础开篇:认识 Python、版本选择、环境部署与首个 HelloWorld
开发语言·python
Metaphor6922 小时前
使用 Python 快速在 Word 文档中插入图片
python·word
笨鸟先飞的橘猫2 小时前
系统设计思维训练——方法论
游戏·思维训练
2601_966871402 小时前
Python 爬虫 + 数据挖掘实战:数据抓取与深度挖掘分析全流程
爬虫·python·数据挖掘