LeetCode hot 100—跳跃游戏

51单片机通过计时器实现倒计时 51单片机通过计时器操作两位8段阳极数码管,实现倒计时 阅读详情

题目

给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。

判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。

示例

示例 1:

输入:nums = [2,3,1,1,4]
输出:true
解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。

示例 2:

输入:nums = [3,2,1,0,4]
输出:false
解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。

分析

贪心法

贪心算法的核心思想是在每一步都尽可能地往前跳,维护一个能到达的最远位置。

整体思路

初始化:

  • n 为数组的长度。maxReach 表示能到达的最远位置,初始化为 0。

遍历数组:

  • 对于每个位置 i,检查 i 是否超过了 maxReach,如果超过了,说明无法到达该位置,返回 false。
  • 更新 maxReach 为 maxReach 和 i + nums[i] 中的较大值,i + nums[i] 表示从当前位置 i 能跳到的最远位置。
  • 检查 maxReach 是否已经超过或等于数组的最后一个下标 n - 1,如果是,返回 true。

返回结果:

  • 如果遍历完数组都没有返回 true,则返回 false。

时间复杂度:O(n), n 是数组的长度

空间复杂度:O(1)

class Solution {
public:
    bool canJump(std::vector<int>& nums) {
        int n = nums.size();
        // 能到达的最远位置
        int maxReach = 0;
        for (int i = 0; i < n; ++i) {
            // 如果当前位置超过了能到达的最远位置,说明无法到达该位置,返回 false
            if (i > maxReach) {
                return false;
            }
            // 更新能到达的最远位置
            maxReach = std::max(maxReach, i + nums[i]);
            // 如果能到达的最远位置已经超过或等于数组的最后一个下标,返回 true
            if (maxReach >= n - 1) {
                return true;
            }
        }
        return false;
    }
};  
思科网络进阶——多生成树协议(MSTP)配置的一课一得 三、实验拓扑1)设计一个网络架构,要有核心层和接入层,都使用思科交换机。2)企业有4个部门,要求这四个部门都可以上网,但分属不同的VLAN中,这样今后可以做其它安全策略以确保网络安全,这些策略如今后学到的访问控制列表ACL。3)网络架构的设计要具有冗余,防止一条线路或一台设备终端导致的业务中断。4)由于硬件冗余而产生的环路要处理好,也就是要在逻辑上(或者说通过配置)防止物理环路的产生。5)不能因为防止物理环路而导致某端口没有流量,这样浪费端口资源及设备间互联的带宽资源。 阅读详情

相关推荐

stm32最小系统_完成一个最小FOC矢量控制系统所需的基本模块和功能配置

当我们读懂 FOC 矢量控制的基本原理之后,便迫不及待的想动手尝试,去实现一个矢量控制系统,让电机先转起来,有一个直观的感受。因此,我们需要设计实现一个矢量控制的最小系统,具备矢量控制的基本功能,满足电机矢量运行的基本条件。首先,看一下矢量控制的基本架构:矢量控制架构如上图所描述,矢量控制系统包括实时电流的采集、clarke 变换、park 变换、SVPWM 、实时角度的反馈和计算以及电流环和速...

weixin_39524048的博客 1784

Leetcode 55:跳跃游戏

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

weixin_47382783的博客 852

保姆级教程:用STM32H743+TJA1042T玩转FDCAN,CubeMX配置1M/5M双速率通信(附完整代码)

本文提供STM32H743与TJA1042T实现FDCAN双速率通信的保姆级教程,详细讲解CubeMX配置1M/5M双速率通信的全过程,包括硬件连接、时钟树配置、过滤器设置及中断管理,并附完整代码示例,助力开发者快速掌握FDCAN高速通信技术。

weixin_30698297的博客 473

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

【机械视觉】Halcon—【二、Halcon算子全面介绍(超详细版)】

Halcon 的算子(operators)按照功能被系统性地划分为多个类别,官方文档中目前(Halcon 22.11 版本)共有 19 个主分类,每个主分类下还有若干子分类。 本人在此对这19个分类的常用核心算子进行了一系列的总结,且本人在文章最后还总结了一些案例经验。 注意: ​​​​​​​跨分类调用:某些算子可能在多个分类中,但官方文档中会明确其主分类。 例如: read_image(文件操作)常被其他分类(如图像处理)的示例调用,但其核心功能是文件读取。

qq_3517289697的博客 3919

STM32测测速---编码电机读取速度的计算

速度计算:轮胎每转一圈的脉冲数取决于编码器的分辨率,可由下面公式进行计算:PPR是电机的线数最后可以计算轮胎每转一圈的脉冲数为:轮胎每转一圈的脉冲数 = 9.6 × 11 × 4 = 422.4最后的速度公式简化为:速度 = (0.01 秒内产生的脉冲数 ∗ 0.055 ∗ π )/(0.01 ∗422.4​。

weixin_69414084的博客 3811

跳跃游戏(数组、贪心)

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

weixin_43876625的博客 3411

Python 爬虫实战:微博自动化运营工具(点赞 / 转发 / 评论 + 反封号策略)

微博作为中国最大的社交媒体平台之一,拥有庞大的用户群体和丰富的数据资源。通过 Python 爬虫技术,我们可以实现微博的自动化运营,包括点赞、转发、评论等功能,同时采取有效的反封号策略,确保账号的安全和稳定运行。

u014481728的博客 1179

力扣(19) - 跳跃游戏

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

Touale的博客 929

数控系统(CNC)系列:Hurco VMX42SR_(3).控制系统硬件组成部分

控制箱是CNC系统的核心部分,负责处理所有的控制指令和数据。它通常包含主控板、电源模块、接口板等关键组件。伺服驱动器是CNC系统中的关键组件,负责将主控板发出的控制信号转换为电机所需的驱动电流。它通过闭环控制确保电机的精确运动。电机是CNC系统中的执行机构,负责实现主控板发出的运动指令。常见的电机类型包括步进电机和伺服电机。传感器是CNC系统中的重要组件,用于检测和反馈机床的运行状态。常见的传感器类型包括位置传感器、速度传感器、温度传感器等。电源供应系统为CNC系统的所有组件提供电力。主电源。

2401_87715305的博客 1281

【MODIS处理工具】MRT(MODIS Reprojection Tool) 下载及安装

【MODIS处理工具】MRT(MODIS Reprojection Tool) 下载及安装

WW、forever的博客 2406

leetcode——第55题——跳跃游戏

题目: 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 class Solution { public: bool canJump(vector<int>& nums) { // 贪心,每一次都 jump 最大值,如果最终结果覆盖了最后一个下标, // 那么中间不管,但最终肯定有一种方案,可以保证能跳到最后一个下标,否则就是true

linping_的博客 565

整理 钢琴 铃木钢琴教程(铃木)

铃木钢琴 超清PDF

TS的博客 1215

力扣刷题HOT100——跳跃游戏

给你一个非负整数数组nums,你最初位于数组的。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回true;否则,返回false。true可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。false无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。采用,核心思想是,并在遍历数组的过程中不断更新这个位置。,表示初始时能到达的最远位置是下标0。ii。

hxd030228的博客 424

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

力扣hot100:跳跃游戏

贪心算法的核心是每一步都做出当前状态下的局部最优选择,最终期望得到全局最优解。对于本题,局部最优策略是:在遍历过程中,持续维护 “当前能到达的最大索引”,每到一个位置,就更新这个最大索引(取当前最大索引与 “当前位置 + 当前位置能跳的最大长度” 的较大值)。通过这种局部最优的更新,最终判断是否能覆盖到数组的最后一个索引。要判断能否到达数组最后一个下标,关键在于。

一本大学生java学习技术分享与交流 470

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

LeetCode 热题 HOT 100之跳跃游戏

LeetCode 热题 HOT 100之跳跃游戏 题目55:给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 方案:按顺序计算看能达到的最右边位置。 class Solution { public: bool canJump(vector<int>& nums) { int k=0; int n=nums.size(); for(

weixin_42093587的博客 2273

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

LeetCode hot 100—跳跃游戏 II

给定一个长度为n的整数数组nums。初始位置为nums[0]。每个元素nums[i]表示从索引i向后跳转的最大长度。换句话说,如果你在nums[i]处,你可以跳转到任意i + j < n返回到达的最小跳跃次数。生成的测试用例可以到达。

rigidwill的博客 552

Leetcode Hot100 第89题 55.跳跃游戏

【代码】Leetcode Hot100 第89题 55.跳跃游戏。

weixin_45850570的博客 288

LeetCode Hot100 跳跃游戏

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

Deep_C的博客 406

LeetCode Hot 100 跳跃游戏II

如果有多个位置通过跳跃都能够到达最后一个位置,那么我们应该如何进行选择呢?直观上来看,我们可以「贪心」地选择距离最后一个位置最远的那个位置,也就是对应下标最小的那个位置。因此,我们可以从左到右遍历数组,选择第一个满足要求的位置。我们的目标是到达数组的最后一个位置,因此我们可以考虑最后一步跳跃前所在的位置,该位置通过跳跃能够到达最后一个位置。找到最后一步跳跃前所在的位置之后,我们继续贪心地寻找倒数第二步跳跃前所在的位置,以此类推,直到找到数组的开始位置。从下标为 0 跳到下标为 1 的位置,跳。

2302_76776557的博客 189

LeetCode hot100 45 跳跃游戏2

给定一个长度为n的整数数组nums。初始位置在下标 0。每个元素nums[i]表示从索引i向后跳转的最大长度。换句话说,如果你在索引i处,你可以跳转到任意(i + j)i + j < n返回到达n - 1的最小跳跃次数。测试用例保证可以到达n - 1。2跳到最后一个位置的最小跳跃数是2。从下标为 0 跳到下标为 1 的位置,跳1步,然后跳3步到达数组的最后一个位置。2n - 1。

2401_87808951的博客 343

力扣Hot100系列17(Java)——[贪心算法] 总结 (买股票的最佳时机,跳跃游戏,跳跃游戏||,划分字母区间)

本文总结了力扣Hot100中关于贪心算法的三道经典题目: 买股票的最佳时机:通过维护最小价格和最大利润变量,一次遍历数组求解最大利润; 跳跃游戏:通过动态更新当前能到达的最远位置,判断是否能跳到终点; 跳跃游戏II:在保证可达的前提下,通过贪心策略计算到达终点的最小跳跃次数。 每道题均给出Java代码实现及详细示例解析,重点说明贪心策略的核心思想和关键步骤。代码简洁高效,示例清晰展示算法执行过程,帮助理解如何通过局部最优解达到全局最优。

2402_89049045的博客 956

leetcode hot100 之 跳跃游戏

题目 给定一个数组,每一个位置的数字,表示当前位置能跳跃的最大步数。你起始位于 index = 0 的位置,判断你是否能够跳跃到最后一个位置。 输入:nums = [2,3,1,1,4] 输出:true 解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。 原题链接: https://leetcode-cn.com/problems/jump-game/ 思路 不妨从后往前,先找到第一个能跳到最后一个位置的位置,我们称之为可行的位置。例如,[2, 3, 1,

smallplum123的博客 1408

力扣HOT100之贪心算法:55. 跳跃游戏

来记录最大覆盖范围,遍历数组的每一个元素,不断地更新最大覆盖范围,当最大覆盖范围达到或者超过。之前刷代码随想录的时候做过这道题,现在做又忘完了(ˉ▽ˉ;并没有把这个元素覆盖住,此时我们退出循环,直接返回。的范围时,则说明我们无法通过跳跃的方式到达当前的。时,则说明可以通过跳跃达到数组的末端,直接返回。,一下就明白了,这道题就是定义一个变量。

weixin_52151595的博客 393

LeetCode Hot100 动态规划 55. 跳跃游戏

分析:例 nums=[5,3,2,0,8,10] 1 .建立dp[]数组,里面记录可以跳的最远的格子 i 表示格子:第 0 格 ,第 1 格,第 2格,......,第 nums.length-1格 dp[0] = i + nums[i] = 0 + 5 = 5,即在i = 0 处最远可以跳到 i=5的格子 dp[1] = i + nums[i] = 1 + 3 = 4,即在i = 1 处最远可以跳到 i=4的格子 dp[1]只可以跳到i = 4,而dp[0]可以跳到i=5 很明显 dp...

FlowShip的博客 3123

力扣hot100(Java)——贪心算法系列(买卖股票的最佳时机、跳跃游戏I&II、划分字母区间)

力扣hot100——贪心算法系列(买卖股票的最佳时机、跳跃游戏I&II、划分字母区间)

qq_63955073的博客 535
上一篇: LeetCode hot 100—接雨水
下一篇: LeetCode hot 100—跳跃游戏 II
rigidwill666
博客等级 码龄7年 508粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rigidwill666

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值