leetcode做题笔记45

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

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

0 <= j <= nums[i]

i + j < n

返回到达 nums[n - 1] 的最小跳跃次数。生成的测试用例可以到达 nums[n - 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;
}

分析:

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

总结:

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

相关推荐
叶~小兮2 小时前
Jenkins构建生产CICD环境学习笔记
笔记·学习·jenkins
玉树临风ives2 小时前
atcoder ABC 458 题解
数据结构·c++·算法
暴躁小师兄数据学院2 小时前
【AI大模型应用开发工程师特训笔记】第04讲(第4章):运算符
人工智能·笔记·机器学习
AKA__Zas2 小时前
芝士算法 (双指针篇2.0)
java·数据结构·leetcode·学习方法
如竟没有火炬2 小时前
有序矩阵中第K小的元素
数据结构·线性代数·算法·leetcode·矩阵·深度优先
叁散2 小时前
ESP32智能闹钟系统实验报告
单片机·嵌入式硬件·算法
问心无愧05132 小时前
ctf show web 入门258
android·前端·笔记
Realdagongzai2 小时前
Linux 6.19.10 内核调度器算法详解
linux·学习·算法·spring·kernel
xxl大卡2 小时前
Redis完整详细学习笔记
redis·笔记·学习
洛水水2 小时前
【力扣100题】63.最小覆盖子串
算法·leetcode