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

总结:

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

相关推荐
得物技术9 小时前
得物推荐系统诊断 Agent:从 “调接口” 到 “会思考”|AICon 演讲整理
人工智能·算法·架构
Lugas9 小时前
为啥说男生找对象尽量在25岁前找到?
算法
MrZhao4009 小时前
从能跑到可用:一个 Agent Harness 还差哪些工程闭环?
算法
疯狂打码的少年10 小时前
【软件工程】需求工程:需求规格说明与需求验证
笔记·软件工程
QN1幻化引擎10 小时前
Gravity-Anchored Cognitive Field Architecture: The DalinX V8/V10 Implementation
java·前端·算法
吃着火锅x唱着歌10 小时前
Effective C++ 学习笔记 条款33 避免遮掩继承来的名称
c++·笔记·学习
学计算机的计算基10 小时前
LeetCode 图论四题精讲:BFS、拓扑排序、Trie 树的模板与优化
java·笔记·算法
浩瀚地学10 小时前
【面试算法笔记】0202-链表-基本功能实现
java·经验分享·笔记·算法·面试
你想知道什么?10 小时前
Matplotlib学习笔记
笔记·学习·matplotlib
tkevinjd11 小时前
416分割等和子集
java·python·算法·leetcode·职场和发展