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,编写时注意到最后一个数没用,可以直接跳过。

总结:

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

相关推荐
跨境卫士苏苏2 分钟前
亚马逊AI广告革命:告别“猜心”,迎接“共创”时代
大数据·人工智能·算法·亚马逊·防关联
呱呱巨基29 分钟前
Linux 进程概念
linux·c++·笔记·学习
云雾J视界37 分钟前
当算法试图解决一切:技术解决方案主义的诱惑与陷阱
算法·google·bert·transformer·attention·算法治理
Xの哲學38 分钟前
Linux Miscdevice深度剖析:从原理到实战的完整指南
linux·服务器·算法·架构·边缘计算
夏乌_Wx1 小时前
练题100天——DAY23:存在重复元素Ⅰ Ⅱ+两数之和
数据结构·算法·leetcode
立志成为大牛的小牛2 小时前
数据结构——五十六、排序的基本概念(王道408)
开发语言·数据结构·程序人生·算法
老王熬夜敲代码2 小时前
C++中的atomic
开发语言·c++·笔记·面试
沿着路走到底2 小时前
将数组倒序,不能采用reverse,算法复杂度最低
算法
IDIOT___IDIOT2 小时前
KNN and K-means 监督与非监督学习
学习·算法·kmeans