【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
相关推荐
CodeAmaz1 分钟前
一致性哈希与Redis哈希槽详解
redis·算法·哈希算法
POLITE334 分钟前
Leetcode 42.接雨水 JavaScript (Day 3)
javascript·算法·leetcode
Tim_1035 分钟前
【算法专题训练】36、前缀树路径和
算法
好易学·数据结构40 分钟前
可视化图解算法76:最大子数组和
数据结构·算法·leetcode·面试·动态规划·力扣·笔试
tang7778942 分钟前
Python爬虫代理,选短效IP还是长效IP?
爬虫·python·tcp/ip
写文章的大米1 小时前
这份数据验证方案,可以让你的 FastAPI 崩溃率直降90%
python
副露のmagic1 小时前
更弱智的算法学习 day13
学习·算法
xingzhemengyou11 小时前
Python 有哪些定时器
前端·python
站大爷IP1 小时前
Python自动整理音乐文件:按艺术家和专辑分类歌曲
python
BBB努力学习程序设计1 小时前
Python 高效处理大数据:生成器(Generator)的工作机制与实战技巧
python