【leetcode--55.跳跃游戏】

思路:贪心算法,尽可能达到最远的位置(因为如果可以达到某个位置,一定可以达到之前的位置)

复制代码
class Solution:
    def canJump(self, nums: List[int]) -> bool:
        max_i = 0
        for i ,jump in enumerate(nums):
            if max_i>=i and (i + jump) > max_i:
                max_i = i + jump
        return max_i >= i

这里的return max_i >= i,注意可以换成return max_i >= len(nums)-1.

首先初始化当前能到达的最远距离,i为当前位置,jump是当前位置的跳数

if判断如果当前位置到达,并且当前位置+跳数>最远位置

然后更新最远能到达位置

相关推荐
xh didida3 分钟前
数据结构--实现链式结构二叉树
c语言·数据结构·算法
ab1515173 分钟前
3.15二刷基础90、105、106、110
数据结构·c++·算法
C蔡博士4 分钟前
最近点对问题(Closest Pair of Points)
java·python·算法
白太岁6 分钟前
算法:链表:指针变化与环
数据结构·算法·链表
寻寻觅觅☆6 分钟前
东华OJ-进阶题-10-分解质因数(C++)
数据结构·c++·算法
是梦终空11620 分钟前
模板编译期机器学习
开发语言·c++·算法
killer Curry31 分钟前
Polar CTF PWN 简单(1)(持续更新)
笔记·python·算法
Han.miracle36 分钟前
Lombok 构造相关核心注解全解析
java·linux·算法
DeepModel37 分钟前
【概率分布】卡方分布的原理、推导与实战应用
python·算法·概率论