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,再进行循环。

总结:

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

相关推荐
金立基包装胶水1 小时前
纸袋热封频繁不良,先排查胶料这一堆问题
大数据·笔记·其他
啥都想学点的研究生1 小时前
一篇文章讲清楚:线性回归问题的求解——正规方程法
算法·机器学习·线性回归
青少儿编程课堂1 小时前
树状数组精讲:逆序对计数与离散化(附双语言解法)
算法·树状数组·离散化·信息学奥赛·逆序对
常驻客栈1 小时前
B-深入理解计算机系统第3版之第11章:网络编程
开发语言·笔记·学习笔记·常驻客栈·深入理解计算机系统
血小板要健康1 小时前
网格 dfs 与 FloodFill:从岛屿、区域到搜索路径
笔记·算法·leetcode·深度优先
NoteDeep 深度笔记1 小时前
Observer: 思维 ≠ 自己
笔记
VALENIAN瓦伦尼安教学设备2 小时前
设备状态检测振动分析实训台案例分析
大数据·数据库·人工智能·嵌入式硬件·算法
米饭不加菜2 小时前
一些常用模块简介
经验分享·笔记·嵌入式硬件
小小晓.2 小时前
C++ 值类别与完美转发深度剖析:从左值右值到 std::forward 源码解密
开发语言·c++·算法
怕浪猫2 小时前
用了两年 AI 编程工具后,我重新理解了什么是「资深工程师」
算法·面试·架构