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

总结:

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

相关推荐
老王熬夜敲代码13 分钟前
C++中的atomic
开发语言·c++·笔记·面试
沿着路走到底35 分钟前
将数组倒序,不能采用reverse,算法复杂度最低
算法
IDIOT___IDIOT43 分钟前
KNN and K-means 监督与非监督学习
学习·算法·kmeans
Rousson1 小时前
硬件学习笔记--91 TMR型互感器介绍
笔记·学习
Ingsuifon1 小时前
yolov5模型迁移笔记
笔记·yolo
Hcoco_me1 小时前
大模型面试题18:t-SNE算法详解及入门实操
算法
Data_agent2 小时前
学术爬虫实战:构建知网论文关键词共现网络的技术指南
python·算法
Slaughter信仰2 小时前
图解大模型_生成式AI原理与实战学习笔记前四张问答(7题)
人工智能·笔记·学习
立志成为大牛的小牛2 小时前
数据结构——五十五、散列查找的性能分析(线性探测法)(王道408)
数据结构·程序人生·考研·算法