news 2026/10/30 9:46:39

力扣hot100:跳跃游戏

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
力扣hot100:跳跃游戏

题目描述:

贪心算法思想:

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

思路解析:

要判断能否到达数组最后一个下标,关键在于跟踪 “能到达的最远位置”,具体思路如下:

  1. 初始化最大可达索引:从数组第一个元素开始,初始最大可达索引为0(起始位置)。
  2. 遍历数组的每个位置:
    • 若当前遍历的索引i超过了 “当前能到达的最大索引”,说明该位置无法到达,直接返回false。
    • 否则,更新 “能到达的最大索引”(取当前最大索引与i + nums[i]的较大值,i + nums[i]是从当前位置i能跳到的最远位置)。
    • 若更新后的最大索引已经覆盖了数组的最后一个下标(即maxLength >= n-1),直接返回true(提前终止,提升效率)。
  3. 遍历结束:若顺利遍历完所有位置,说明最后一个下标可到达,返回true。

代码:

class Solution { public boolean canJump(int[] nums) { int n = nums.length; // 获取数组长度 if (n == 0) { // 处理空数组的边界情况 return false; } int maxLength = 0; // 记录当前能到达的最大索引 for (int i = 0; i < n; i++) { // 遍历数组的每个位置 // 若当前索引超过了能到达的最大范围,说明无法到达后续位置,返回false if (i > maxLength) { return false; } // 更新能到达的最大索引:取当前最大索引 与 “当前位置+当前位置能跳的最大长度”的较大值 maxLength = Math.max(maxLength, i + nums[i]); // 若最大索引已覆盖最后一个下标,直接返回true(提前终止) if (maxLength >= n - 1) { return true; } } return true; // 遍历完成后,说明最后一个下标可到达 } }

代码解析:

  • 边界处理:if (n == 0)处理空数组场景,避免后续逻辑出错。
  • 遍历与合法性判断:if (i > maxLength)是核心判断 —— 若当前位置i不在 “能到达的范围” 内,说明无法继续前进,直接返回false。
  • 贪心更新最大可达索引:maxLength = Math.max(maxLength, i + nums[i])是贪心策略的体现 —— 每一步都尽可能扩大 “能到达的范围”,保证局部最优。
  • 提前终止:if (maxLength >= n - 1)一旦最大范围覆盖了最后一个下标,立即返回true,无需遍历剩余元素,提升算法效率。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/30 1:43:35

PyTorch人脸追踪在树莓派5上的实时性优化方法

让PyTorch人脸追踪在树莓派5上跑出25FPS&#xff1a;一次从模型到系统的深度优化实战你有没有试过把一个训练好的PyTorch模型直接扔到树莓派上跑&#xff1f;我试了——结果是画面卡得像PPT&#xff0c;CPU温度一路飙升到70C。这显然不是“智能视觉”&#xff0c;更像是“高温警…

作者头像 李华
网站建设 2026/10/30 19:40:08

Arduino控制舵机转动实战案例解析

Arduino控制舵机转动实战&#xff1a;从原理到稳定驱动的完整指南你有没有试过用Arduino控制一个舵机&#xff0c;结果它不是“嗡嗡”响个不停&#xff0c;就是转不到位、抖得像在打寒战&#xff1f;别急——这几乎是每个嵌入式新手都会踩的坑。而问题的根源&#xff0c;往往不…

作者头像 李华
网站建设 2026/10/30 0:24:48

PyTorch-2.x-Universal镜像实测:Jupyter+GPU环境轻松跑通

PyTorch-2.x-Universal镜像实测&#xff1a;JupyterGPU环境轻松跑通 1. 引言&#xff1a;为什么需要通用深度学习开发镜像&#xff1f; 在深度学习项目开发过程中&#xff0c;环境配置往往是耗时且容易出错的第一道门槛。从CUDA驱动兼容性、PyTorch版本匹配&#xff0c;到常用…

作者头像 李华
网站建设 2026/10/30 5:22:14

USB-Blaster与Quartus Prime联动:驱动安装实战案例

USB-Blaster驱动装不上&#xff1f;别慌&#xff0c;手把手带你打通Quartus下载链路你有没有遇到过这种情况&#xff1a;FPGA设计仿真通过了&#xff0c;综合布局布线也完成了&#xff0c;信心满满打开Quartus Prime的“Programmer”&#xff0c;准备把.sof文件烧进去——结果点…

作者头像 李华
网站建设 2026/10/24 11:32:03

树莓派4b嵌入式Linux系统裁剪核心要点解析

树莓派4B嵌入式Linux系统裁剪实战&#xff1a;从臃肿到秒启的蜕变之路你有没有遇到过这样的场景&#xff1f;手里的树莓派4B明明性能不弱——四核A72、8GB内存、千兆网口一应俱全&#xff0c;可一开机却要等上二三十秒才能进入系统&#xff0c;运行个简单服务还得跟一堆无关进程…

作者头像 李华
网站建设 2026/10/26 8:20:34

从零实现树莓派中文输入环境搭建

让树莓派“说”中文&#xff1a;从零搭建流畅拼音输入环境你有没有试过在树莓派上写一篇中文笔记&#xff1f;打开文本编辑器&#xff0c;敲下zhongwen&#xff0c;结果屏幕只回你一串英文字母——那一刻的无力感&#xff0c;只有真正想用它做点“正经事”的人懂。虽然树莓派是…

作者头像 李华