leetcode做题笔记55

给定一个非负整数数组 nums ,你最初位于数组的 第一个下标

数组中的每个元素代表你在该位置可以跳跃的最大长度。

判断你是否能够到达最后一个下标。

思路一:贪心

cpp 复制代码
bool canJump(int* nums, int numsSize){
    int n = numsSize-1;
    for(int i = numsSize - 2;i>=0;i--)
    {
        if(nums[i]+i>=n)    n = i;
    }
    if(n==0)return true;
    else return false;
}

时间复杂度O(n),空间复杂度O(1)

分析:

本题问是否能到达最后一个下标,可考虑从后向前遍历,判断前一个是否能够到达后一个即可,不断向前遍历,当n==0时说明遍历完全,返回true,编写时注意到最后一个数没用,可以直接跳过。

总结:

本题考察贪心算法的应用,想到从后向前遍历的方法即可快速解决。

相关推荐
明明如月学长11 分钟前
什么你不知道 Cherry Studio 有快捷助手?
算法
Vegetable_Dragon21 分钟前
数论1.01
算法
Star在努力26 分钟前
15-C语言:第15天笔记
c语言·笔记·算法
我有一计3331 小时前
【算法笔记】5.LeetCode-Hot100-矩阵专项
人工智能·算法·程序员
行然梦实1 小时前
KnEA(Knee-point-driven Evolutionary Algorithm)简介
人工智能·算法·机器学习
老虎06271 小时前
JavaWeb(苍穹外卖)--学习笔记14
笔记·学习
qq_513970441 小时前
力扣 hot100 Day58
算法·leetcode
liulilittle2 小时前
DDD领域驱动中瘦模型与富态模型的核心区别
开发语言·c++·算法·ddd·领域驱动·思想
Das12 小时前
【初识数据结构】CS61B 中的归并排序和选择排序
数据结构·算法·排序算法
范纹杉想快点毕业3 小时前
Zynq SOC FPGA嵌入式裸机设计和开发教程自学笔记:硬件编程原理、基于SDK库函数编程、软件固化
网络·笔记·stm32·单片机·嵌入式硬件·tcp/ip·fpga开发