LeetCode 跳跃游戏 II 最优解法:贪心算法
在刷LeetCode的过程中跳跃游戏 IIJump Game II 是一道经典的贪心算法题目要求我们以最少的跳跃次数到达数组的最后一个位置。这篇文章将详细讲解如何用贪心思想高效解决这个问题全程使用Java代码实现思路清晰且时间复杂度最优。题目回顾给定一个长度为 n的非负整数数组 nums你最初位于数组的第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个下标。说明假设你总是可以到达数组的最后一个位置。解题思路贪心算法核心思想是每一步都选择能跳得最远的位置从而最小化跳跃次数。我们通过三个关键变量来实现这个思路mx记录当前位置能够到达的最远位置last记录上一次跳跃后到达的边界位置即上一次跳跃的终点ans记录跳跃的总次数。具体执行步骤遍历数组的前n-2个位置因为到达倒数第二个位置时最后一次跳跃必然能到终点对每个位置i计算i nums[i]当前位置能跳到的最远位置并更新mx为全局最大值当遍历到last上一次跳跃的边界时说明需要进行一次新的跳跃将last更新为当前能到达的最远位置mx跳跃次数ans加 1遍历结束后ans即为最少跳跃次数。Java代码实现class Solution { public int jump(int[] nums) { // 边界处理数组长度为1时无需跳跃 if (nums null || nums.length 1) { return 0; } int n nums.length; int mx 0; // 当前能到达的最远位置 int last 0; // 上一次跳跃的边界位置 int ans 0; // 跳跃次数 // 遍历到n-2即可因为到n-1已经是终点无需再跳 for (int i 0; i n - 1; i) { // 更新当前能到达的最远位置 mx Math.max(mx, i nums[i]); // 到达上一次跳跃的边界需要跳一次 if (i last) { last mx; // 新的边界是当前能到达的最远位置 ans; // 跳跃次数1 // 提前终止如果当前最远位置已经能到终点无需继续遍历 if (mx n - 1) { break; } } } return ans; } }代码解析边界处理如果数组长度小于等于 1直接返回 0起点就是终点无需跳跃变量初始化mx初始为 0初始能到达的最远位置last初始为 0初始跳跃边界是起点ans初始为 0初始跳跃次数核心遍历遍历范围是[0, n-2]因为当i n-1时已经到达终点无需处理每次计算i nums[i]并更新mx确保mx始终是当前能到达的最远位置当i到达上一次跳跃的边界last时说明必须跳一次更新last为新的最远边界mx并增加跳跃次数提前终止优化如果mx已经能覆盖到数组最后一个位置直接跳出循环减少不必要的遍历。复杂度分析时间复杂度O(n)仅需遍历数组一次每个元素最多被访问一次空间复杂度O(1)仅使用了常数个变量没有额外的空间开销。示例验证以nums [2,3,1,1,4]为例初始mx0, last0, ans0i0mx max(0, 02)2ilast更新last2ans1i1mx max(2, 13)4i≠lasti2mx max(4, 21)4ilast更新last4ans2此时mx4 4数组最后一个位置提前终止最终返回ans2符合预期。总结本题的核心是贪心策略每一步都选择能跳得最远的位置从而最小化跳跃次数通过mx记录最远可达位置、last记录跳跃边界能在一次遍历中完成计算时间复杂度最优Java 代码实现中加入了边界处理和提前终止优化进一步提升了代码的健壮性和效率。

相关新闻

大气层自定义系统配置完全指南:从入门到精通的安全优化方案

大气层自定义系统配置完全指南:从入门到精通的安全优化方案

大气层自定义系统配置完全指南:从入门到精通的安全优化方案 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 大气层自定义系统为Switch玩家提供了前所未有的功能扩展空间&#x…

2026/7/5 13:19:01 阅读更多 →
springboot电商网站开题报告

springboot电商网站开题报告

目录 技术背景研究意义研究内容创新点预期成果参考文献 项目技术支持可定制开发之功能亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作 技术背景 Spring Boot是基于Spring Framework的快速开发框架,简化了Spring应用的初始搭…

2026/7/3 15:32:44 阅读更多 →
零基础玩转XNB文件处理:从入门到精通的完整指南

零基础玩转XNB文件处理:从入门到精通的完整指南

零基础玩转XNB文件处理:从入门到精通的完整指南 【免费下载链接】xnbcli A CLI tool for XNB packing/unpacking purpose built for Stardew Valley. 项目地址: https://gitcode.com/gh_mirrors/xn/xnbcli 一、XNB工具基础入门:轻松掌握游戏资源处…

2026/7/4 23:25:57 阅读更多 →

最新新闻

我第一次用 Codex,差点把桌面交给它

我第一次用 Codex,差点把桌面交给它

CODEX 第三期 写在前面 这不是一篇炫技教程。它只解决小白第一次用 Codex 时最容易忽略的一件事:不要急着把桌面、客户资料和真实项目交给 AI,先用一个安全小文件夹跑通入门闭环。 我第一次打开 Codex 的时候,差点犯一个很蠢的错误。 不是装错版本,也不是登录失败。 而…

2026/7/5 13:20:08 阅读更多 →
AI写专著全流程解析,利用工具轻松打造20万字专业专著!

AI写专著全流程解析,利用工具轻松打造20万字专业专著!

对于很多研究者来说,写学术专著时最让人头疼的,莫过于“有限的时间”与“无限的需求”之间的矛盾。撰写专著通常需要数年时间,而研究者还要兼顾教学、科研、学术交流等各种任务,能够专心写作的时间往往是零散的。这种零碎的写作方…

2026/7/5 13:20:08 阅读更多 →
《唤醒你的AI同事:WorkBuddy从零上手》037:附录B 快捷键一览

《唤醒你的AI同事:WorkBuddy从零上手》037:附录B 快捷键一览

本文是《唤醒你的 AI 同事——WorkBuddy 从零上手》系列 第 37 篇。 回顾总结:通过第 036 篇附录 A,我们整理了 WorkBuddy 最实用的指令模板——从报告撰写、合同审查到数据分析、代码生成等 10+ 个场景。你现在已经拥有了即拿即用的"武器库"。但光有模板还不够,手…

2026/7/5 13:20:08 阅读更多 →
零日漏洞攻防实战:从检测到响应的纵深防御体系构建

零日漏洞攻防实战:从检测到响应的纵深防御体系构建

1. 项目概述:直面数字世界的“隐形杀手”在网络安全这个没有硝烟的战场上,最让防御者感到棘手的,往往不是那些已知的、有补丁可循的威胁,而是那些被称为“零日漏洞”的未知攻击。从业十几年,我处理过无数次安全事件&am…

2026/7/5 13:16:07 阅读更多 →
多人聊天室

多人聊天室

一、项目简介本项目是一个基于Java Swing MySQL的博客文章管理系统,实现了文章发布、分类管理、用户登录、全局搜索等核心功能。 我在项目中主要负责全局搜索模块、数据库读写层设计以及部分面向对象架构设计工作。二、个人任务简述序号完成功能与任务描述1全局搜索…

2026/7/5 13:14:06 阅读更多 →
骑乘无忧怎么选 (新手女生小个子巡航摩托)选购要点

骑乘无忧怎么选 (新手女生小个子巡航摩托)选购要点

入手自动挡巡航摩托,CVT 和 AMT 该怎么选?面向入门骑手、女性车友以及身高娇小的人群,最优方案已然明确。AMT 巡航操控顺手、动力充沛、使用便捷,外观也十分出彩,是综合实力更强的选择。QJMOTOR 闪 300AMT 与闪 400AMT…

2026/7/5 13:14:06 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻