Leetcode(55)跳跃游戏——贪心

LeetCode 55 & 45:跳跃游戏与跳跃游戏 II - 贪心算法详解 跳跃游戏系列是LeetCode中经典的贪心算法问题,考察对数组遍历和最优策略的理解。本文将详细解析55题(跳跃游戏)和45题(跳跃游戏 II)的解决方案,通过图解和Java实现帮助读者掌握贪心算法的应用。 阅读详情

题目描述
给定一个非负整数数组,你最初位于数组的第一个位置。
数组中的每个元素代表你在该位置可以跳跃的最大长度。
判断你是否能够到达最后一个位置。

示例 1:
输入: [2,3,1,1,4]
输出: true
解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。
示例 2:
输入: [3,2,1,0,4]
输出: false
解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度是 0 , 所以你永远不可能到达最后一个位置。

思路

从终点倒回起点,每次更新最后位置为能到达的最远点,如果最后到0,则成功。

代码
class Solution {
public:
    bool canJump(vector<int>& nums) {
        int n = nums.size();
        int lastPoi = n - 1;
        for(int i = n - 1; i >= 0; --i){
            if(nums[i] + i >= lastPoi){
                lastPoi = i;
            }
        }
        return lastPoi == 0;
    }
};
LeetCode 55. 跳跃游戏(贪心)—— JavaScript 题链接:https://leetcode-cn.com/problems/jump-game/ 题描述: 解题思路: 对于位置 i 上的元素,它可以跳跃到的最远位置为 i + nums[i],如果某个元素跳跃的最远位置超出或等于数组末尾的位置则返回 true。 即,我们依次遍历数组元素,并实时维护一个最远位置,对于当前遍历元素,如果该元素在最远位置内,则代表该元素是可到达的。 代码实现: /** * @param {number[]} nums * @return {boolean} 阅读详情

相关推荐

跳跃游戏(数组下标跳跃)

给定一个非负整数数组,假定你的初始位置为数组第一个下标。 数组中的每个元素代表你在那个位置能够跳跃的最大长度。 请确认你是否能够跳跃到数组的最后一个下标。 例如:A = [2,3,1,1,4]A=[2,3,1,1,4] 能够跳跃到最后一个下标,输出true; A = [3,2,1,0,4]A=[3,2,1,0,4] 不能跳跃到最后一个下标,输出false。 输入格式 第一行输入一个正整...

及时总结 2109

LeetCode_55_Jump_Game_python

给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。 示例 2: 输入: [3,2,1,0,4] 输出: false 解释: 无论怎样,你总会到达索引为 3 的...

linyuchen_feidian的博客 567

SAP SD POD 配置与 VLPOD 操作:3步解决发货10件开票7件的业务场景

本文详细解析了SAP SD POD功能在解决发货与开票数量差异中的应用,通过3步配置法实现精准匹配。重点介绍了POD核心逻辑、关键配置步骤及VLPOD操作技巧,帮助企业高效处理易损品运输等复杂场景,提升供应链管理效率。

weixin_30613343的博客 393

跳跃游戏 python实现

题目描述 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。 示例 2: 输入: [3,2,1,0,4] 输出: false 解释: 无论怎样,你总会到达索引为 3 的位置。但...

UESTC_201722的博客 1651

【科研导航】【计算机视觉与图像处理】从顶刊到潜力股:跨学科(电子/电气/信息)SCI期刊投稿全景图

本文全面解析了计算机视觉与图像处理领域的SCI期刊投稿策略,涵盖从顶刊到潜力股的各类期刊特点。重点介绍了IEEE Transactions系列、Elsevier旗舰期刊以及二区优质期刊的审稿偏好和投稿技巧,特别适合电子/电气/信息交叉学科的研究者。文章还提供了三区、四区期刊的实用投稿建议,帮助科研新手快速找到适合的发表平台。

weixin_30897233的博客 81

昆仑通态屏幕制作(连载1)---接触篇

写在开始 背景:最近出了做QT、LORA和4G,还做了一个屏幕。以前做了一个迪文的串口屏幕,发现网上的教程很多,所以连载就不更新了,并且迪文屏幕的设置什么的比较简单,应该从网上都能找到对应的教程。而现在用的昆仑通态的屏幕属于嵌入式屏幕,至于为啥叫嵌入式,也不是很明白,反正就是需要用这个屏幕,嵌入式不嵌入式不重要了。重要的是能用,并且能实现串口屏幕不能实现的功能。所以选定昆仑通态的一款屏幕。 文章语言:我比较习惯用比较糙的语言介绍做的东西,有时候不太准备,但是为了方便理解,还请大家谅解。用...

weixin_45426095的博客 6735

python 跳跃游戏

跳跃游戏合集[leetcode 55 跳跃游戏](https://leetcode-cn.com/problems/jump-game/)一、贪心算法求解1.1 求解思路1.2 代码实现1.3 复杂度二、动态规划求解2.1 求解思路——五部曲2.2 代码实现2.3 复杂度 leetcode 55 跳跃游戏 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 示例1: 输入:nums = [2,3,1,1,4

qq_38287376的博客 2571

编译原理实验二:LL(1)分析法(附C/C++完整代码)

本文讲述了LL(1)文法的原理及如何用C语言实现。并在给出的代码中实现了消除文法的左递归,First集,Follow集,select集的输出,构造预测分析表并输出,和对任意输入字符串的分析。程序总流程为:从文件读取文法 -> 输出文法信息 -> 消除左递归并输出消除后的文法 -> 计算First集并输出 -> 计算Follow集并输出 ->计算select集并输出 -> 判断是否是LL(1)文法 -> 构造预测分析表并输出 ->手动输入要分析的字符串 -> 输出分析过程和结果读取文件。

W_Wmwmwm的博客 6192

55.跳跃游戏

想象你是那个在格子上行走的小人,格子里面的数字代表“能量”,你需要“能量”才能继续行走。 每次走到一个格子的时候,你检查现在格子里面的“能量”和你自己拥有的“能量”哪个更大,取更大的“能量”! 如果你有更多的能量,你就可以走的更远。 class Solution { public boolean canJump(int[] nums) { if(nums.length == 0) return true; int start = nums[0], max = 1;

Split_token的博客 1880

AI应用架构师实战:半导体器件仿真AI智能体系统搭建

半导体器件仿真(如MOSFET、FinFET等)是芯片设计的核心环节,传统流程依赖专家手动调参、多物理场仿真引擎(如TCAD)耗时(小时级至天级)、经验难以沉淀,导致研发周期长、成本高。如何构建一个AI智能体系统,实现仿真任务的自动化调度、参数智能优化、结果分析与知识沉淀,成为提升半导体研发效率的关键挑战。

移动开发前沿的博客 1222

如何在Ubuntu 22.04系统上安装CUDA 12.9

本文提供Ubuntu22.04系统上安装CUDA12.9的简明指南:1)确认已安装适配575驱动;2)清理旧版本后安装必需依赖库;3)通过deb包方式添加英伟达源并安装CUDA12.9工具包;4)配置环境变量;5)通过nvcc-V和nvidia-smi命令验证安装。文中包含常见问题解决方法及多显卡使用说明,全程约需10分钟完成安装。

2501_93651177的博客 1480

LeetCode55跳跃游戏//力扣55跳跃游戏(贪心)

LeetCode55跳跃游戏//力扣55跳跃游戏 来源:力扣(LeetCode) 链接:题目跳转 给定一个非负整数数组nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 示例1: 输入:nums = [2,3,1,1,4] 输出:true 解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。 示例2: 输入:nums = [3,2,1,0,4] 输出...

MyHeaven7的博客 477

一文弄懂Word2Vec之skip-gram(含详细代码)

目录 前言 一、什么是Skip-gram算法 二、目标是什么 三、定义表示法 3.1 one-hot向量 3.2 词向量(word vector) 3.3 单词矩阵 3.4 单词相似度 3.5 softmax函数 3.6算法过程 3.7 求softmax 四、skipgram代码实现 4.1 如何把词转换为向量 4.2 CBOW和Skip-gram的算法实现 Skip-gram的理想实现 Skip-gram的实际实现 4.3 使用Pytorch实现Skip-gram .

Python,数据分析,机器学习,深度学习 1万+

力扣55.跳跃游戏:贪心算法详解

维护当前能够到达的最远位置及时判断不可达情况并返回利用提前终止优化性能这种贪心思路在很多类似问题中都有应用,比如"加油站问题"、"分配糖果"等。掌握这种"维护可达范围"的思想,对解决其他贪心算法问题很有帮助。

gyd8273的博客 194

车载以太网-TC8测试

TC8测试的用例数量 TC8测试基本流程 TC8测试内容

天赐好车的博客 3615

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【LeetCode: 55. 跳跃游戏 + 贪心】

【LeetCode: 55. 跳跃游戏 + 贪心】给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。

Coder_ljw的博客 933

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

(贪心) LeetCode 55. 跳跃游戏

贪心是思想,只有不断锤炼才能做的懂题目,继续加油,相信自己!!!时间复杂度:O(n);空间复杂度:O(1)。

zth12212003的博客 566

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【贪心算法】LeetCode #55 跳跃游戏

题目链接: LeetCode #55 跳跃游戏 题目描述: #55. 跳跃游戏 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。 示例 2: 输入: [3,2,1,0,4] 输出: false 解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的

Code_Yilia的博客 407

Leetcode55:跳跃游戏(贪心算法)

Leetcode55:跳跃游戏 题目: 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 思路:贪心算法+更新每次能够行走路径的覆盖范围 代码如下: class Solution { public boolean canJump(int[] nums) { int coverRange = 0; if(nums.length <= 1)

immortalize的博客 726

Leetcode【贪心】| 55. 跳跃游戏

Leetcode【贪心】| 55. 跳跃游戏题目解题思路java实现优化贪心解法动态规划另一种思路(用到队列) 题目 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳...

Cherils的博客 354

2020-08-28 贪心算法LeetCode55跳跃游戏

贪心算法 LeetCode55跳跃游戏 分享自己在LeetCode上的解题心得(打个卡) 题目链接 LeetCode 55 跳跃游戏 解题思路 就是单步贪,举个例子假设可以从0位置跳到1,2位置,而在1位置,又可以跳到5位置,在2位置可以跳到9位置,那么在最初的0位置就选择跳到2位置上,因为位置2可以跳到更远的9处,所以先求出index数组,index数组的意思是在每一个位置上最远可以跳到的位置(求法 nums[i]+i)。接下来设jump(当前位置) 和 max_index(在这个遍历过程中,最远可以跳到

小郑在路上 230

LeetCode 55.跳跃游戏:贪心策略下的可达性判断

给定一个非负整数数组nums,你最初位于数组的第一个下标。数组中的每个元素nums[i]表示你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。本题的贪心解法通过跟踪最大覆盖范围范围更新:在当前可达范围内,不断扩展最大覆盖范围早期终止:一旦覆盖范围包含终点,立即返回结果效率优势:线性时间复杂度,常数空间复杂度,远超暴力枚举的性能这种“覆盖范围扩展”的思路可推广到其他可达性问题(如 Jump Game II 求最少跳跃次数),是贪心算法解决范围优化类问题的典型范例。

Musennn的博客 1220

LeetCode 55.45.跳跃游戏I&II(贪心)

题目链接:55.跳跃游戏I 题目详情: 给定一个非负整数数组nums,你最初位于数组的第一个下标。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 示例1: 输入:nums = [2,3,1,1,4] 输出:true 解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。 示例2: 输入:nums = [3,2,1,0,4] 输出:false 解释:无论怎样,总会到达下标为 3 的位置。但该下标的...

zjsru_Beginner的博客 2245

【练习】【贪心】力扣55. 跳跃游戏

思路一:逆向找位置,从最后一个位置laststep往前遍历,如果判定的位置加上当前位置的元素可以到达laststep。给你一个非负整数数组 nums ,你最初位于数组的 第一个下标。解释:无论怎样,总会到达下标为 3 的位置。解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。判断你是否能够到达最后一个下标,如果可以,返回 true;否则,返回 false。输入:nums = [2,3,1,1,4]输入:nums = [3,2,1,0,4]

2402_86344613的博客 468

LeetCode[55] 跳跃游戏 I(贪心)

本题目选自 LeetCode 第 55 题 跳跃游戏 I ,用贪心算法实现。 1. 贪心思想:当前每一次都跳最大步数,maxsteps 记录 2. 到达条件:遍历数组,如果当前位置 i 大于目前所到达的位置 arrived,说明到不了当前位置 i,反之能到达 i 位置,更新 arrived 值

Caso_卡索的博客 512

贪心——力扣55.跳跃游戏&&力扣45.跳跃游戏Ⅱ

贪心:局部最优-->整体最优力扣55.跳跃游戏题目描述思路代码力扣45.跳跃游戏Ⅱ题目描述思路代码 力扣55.跳跃游戏 题目描述 思路代码 依然是贪心的思路,考虑局部最优到整体最优,我们的目标是到达最后一个下标,是不是我们最终只要大于等于即可,那么我们就可以优先考虑跳跃所覆盖的范围,不用去明确每一步具体跳多少,我们每次移动最大跳跃步数,就更新最大的覆盖范围,最后得到最大的覆盖范围,判断是否到达终点 class Solution { public: bool canJump(vector&

今天你AC了吗 419
上一篇: Leetcode(53)最大子序和——动态规划
下一篇: Leetcode(56)合并区间
softwareX4
博客等级 码龄9年 21粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值