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
相关推荐
j_xxx404_1 小时前
蓝桥杯基础--递归
数据结构·c++·算法·蓝桥杯·排序算法
tankeven1 小时前
HJ145 小红背单词
c++·算法
j_xxx404_2 小时前
蓝桥杯基础--枚举
数据结构·c++·算法·蓝桥杯
做怪小疯子2 小时前
Leetcode刷题——矩阵遍历
算法·leetcode·矩阵
羊小猪~~2 小时前
算法/力扣--链表经典题目
数据结构·后端·考研·算法·leetcode·链表·面试
Alicx.2 小时前
每日一题-dfs
算法·蓝桥杯·深度优先
2301_810160952 小时前
C++与Docker集成开发
开发语言·c++·算法
CSDN_Colinw2 小时前
C++模块化设计原则
开发语言·c++·算法
MicroTech20252 小时前
微算法科技(NASDAQ: MLGO)使用机器学习保障量子安全下区块链高效可用
科技·算法·机器学习