leecode100-跳跃游戏2-贪心算法

题目

解法

对于位置i来说,假设目前我们能到达的最远边是cur_right,为了能够到达最远方,我们肯定需要在在i到cur_right中选择一个位置进行建桥;注意,无论选择哪个位置,那么从该位置到针对该位置的最远桥next_right的之间位置都是到达;因此,只要每次选择位置的时候,我们都选择next_right最远的那个就可以了;

我们不需要考虑具体选择哪个,我们只要维护好最远next_right的就行,以及记录建桥次数。

cpp 复制代码
class Solution:
    def jump(self, nums: List[int]) -> int:
        ans = 0
        cur_right = 0#记录当前已经建造的桥的最远右边举例
        next_right = 0
        for i in range(len(nums)-1):
            next_right = max(next_right, nums[i] + i)#记录可以建造的最远的桥
            if i == cur_right:
                cur_right = next_right
                ans += 1
        return ans
相关推荐
不会就选b4 小时前
算法日常・每日刷题--<贪心>25
数据结构·算法
全速向光4 小时前
盖世游戏PC模拟器:手机也能畅玩电脑平台游戏
游戏·智能手机
Minecraft红客4 小时前
以撒的结合
python·游戏·电脑·娱乐
Cccp.1237 小时前
【leetcode】(七)前缀树和贪心算法
数据结构·leetcode·贪心算法
千里码aicood7 小时前
基于CART算法的图书分类系统设计与实现
数据库·算法·分类
做cv的小昊8 小时前
【World Model】π0.5:a Vision-Language-Action Model with Open-World Generalization
人工智能·算法·机器学习·大模型·多模态·vla·世界模型
لا معنى له8 小时前
World-In-World: World Models in a Closed-Loop World
算法
Discipline102910 小时前
尼泊尔河流流量:天气驱动的预测与高流量风险
人工智能·算法
XuCoder10 小时前
改一个数,右边全得重算,这题怎么扛住两万次查询
算法