leetcode做题笔记45

给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums0

每个元素 numsi 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 numsi 处,你可以跳转到任意 numsi + j 处:

0 <= j <= numsi

i + j < n

返回到达 numsn - 1 的最小跳跃次数。生成的测试用例可以到达 numsn - 1

思路一:贪心算法

cpp 复制代码
int jump(int* nums, int numsSize){
    int flag = numsSize -1;
    int res = 0;
    while(flag!=0)
    {
        for(int i  = 0;i<numsSize;i++)
        {
            if(nums[i]+i>=flag)
            {
                flag =i;
                res++;
                break;
            }
        }


    }

    return res;
}

分析:

本题要求最小跳跃次数,可从后向前考虑,即求到达最后一个的最前一个的元素,求此元素的方法则是从前向后遍历,若numsi+i>=flag则flag=i,再进行循环。

总结:

本题使用贪心算法,即考虑如何最快到达最后一个,便可求出最小跳跃次数

相关推荐
Mumu121812 小时前
P3212 [HNOI2011] 任务调度
算法
KWTXX12 小时前
vibe coding-提示词
java·前端·算法
咸甜适中13 小时前
rust语言学习笔记Trait(十五)Drop(释放资源)
笔记·学习·rust
八解毒剂13 小时前
查找-从二分查找到二叉排序树
数据结构·c++·算法
IT笔记13 小时前
【Rust】 Rust宏学习笔记
笔记·学习·rust
tianxingjian201913 小时前
从欧盟电池法新规看QFD:如何将合规需求转化为技术特性?
笔记
程序猿追13 小时前
画个饼,给数据点颜色看看——在 HarmonyOS 模拟器上手搓一个饼图/环形图组件
深度学习·算法·harmonyos
喜樂的CC14 小时前
NestJS图解笔记
笔记
net3m3314 小时前
mymalloc函数里增加memset来初始化数据 全为0,能解决一些奇怪的问题,
算法
计算机安禾14 小时前
【算法分析与设计】第43篇:空间复杂度类与Savitch定理
java·服务器·网络·数据库·算法