当前位置: 首页 > news >正文

贪心算法题解——跳跃游戏 II【LeetCode】

45. 跳跃游戏 II


一、算法逻辑(逐步思路)

问题描述:

给定一个非负整数数组 nums,其中 nums[i] 表示从位置 i 最多可以跳跃的步数,起点在 0,终点在 n - 1
目标是 使用最少的跳跃次数跳到终点,返回这个最小值。


解题思路:

  1. 维护两个变量:
    • cur_right:当前这次跳跃能到达的最远位置(当前“桥”右端);
    • next_right:下一次跳跃可能到达的最远位置(“下一座桥”右端);
    • ans:记录跳跃次数。
  1. 遍历数组的每个位置(注意 不遍历最后一个位置):
    • 不断更新下一次跳跃的最远位置,即 next_right = max(next_right, i + nums[i])
    • 如果当前下标 i 刚好到达了 cur_right,说明当前跳跃范围已用完,必须跳一次,更新 cur_right = next_rightans += 1
  1. 最后返回跳跃次数 ans,即可得到最少跳跃步数。

二、算法核心点

✅ 核心思想:贪心 + 层级跳跃区间划分

  • 将整个跳跃过程视为“逐层建桥”,每一次跳跃把当前位置与能到达的最远端看作一个“可跳跃区域”;
  • 当当前位置到达当前跳跃范围的尽头时,说明需要进行一次新的跳跃;
  • 这其实就是BFS 的按层遍历思想的贪心实现版本
    • 一层一跳,寻找下一层最远边界;
    • 不需要记录路径,只关心跳跃次数。

这也是这类跳跃问题中经典的 “区间推进”贪心模型

class Solution:def jump(self, nums: List[int]) -> int:ans = 0cur_right = 0next_right = 0for i in range(len(nums)-1):next_right = max(next_right, i+nums[i])# 遍历的过程中,动态的更新记录 下一座桥的最远点if i == cur_right:  # 无路可走,必须建桥cur_right = next_right # 更新可以到达的最远距离ans += 1return ans

三、复杂度分析

  • 时间复杂度:O(n)
    只遍历了数组一遍,且每个位置处理一次。
  • 空间复杂度:O(1)
    只用了常数个变量(ans, cur_right, next_right)。

总结表:

维度

内容

✅ 思路逻辑

每次跳跃更新当前最远能到达的位置,到达边界后跳一次

✅ 核心技巧

贪心模拟 BFS 层级遍历,按“跳跃区间”更新跳数

✅ 时间复杂度

O(n)

✅ 空间复杂度

O(1)

http://www.dtcms.com/a/275358.html

相关文章:

  • The Black Heart
  • 飞算 JavaAI 智能编程助手:颠覆编程旧模式,重构新生态
  • 【极客日常】后端任务动态注入执行策略的一种技术实现
  • 27.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--币种服务(一)
  • .net机器学习框架:ML.NET数据处理
  • 【嵌入式硬件实例】-555定时器实现倍压电路
  • 钉钉小程序开发环境配置与前端开发指南
  • 计算机毕业设计ssm基于SSM的萌宠交流平台 基于SSM的毛孩子互动分享与领养系统 SSM架构下的宠物社交·商城·救助一体化平台
  • Mac M芯片安装RocketMQ服务
  • 【Docker基础】Dockerfile指令速览:基础常用指令详解
  • 【STM32实践篇】:最小系统组成
  • 实战指南:用pmap+gdb排查Linux进程内存问题
  • 9.4 自定义SMC服务开发
  • springboot使用@Validated不起作用
  • 加法器学习
  • AI图像修复工具CodeFormer实测:马赛克去除与画质增强效果评测
  • Java使用Langchai4j接入AI大模型的简单使用(四)--整合Springboot
  • Window/linux获得程序运行目录C++
  • C++ Map 和 Set 详解:从原理到实战应用
  • 基于 Python 的数据分析技术综述
  • 2025 全球酒店用品厂家竞争力排行榜发布:扬州卓韵领衔,布草工厂实力重塑行业格局
  • 未来软件开发的新方向:从工程到智能的深度演进
  • 利用scale实现图片放大案例
  • 商业机密保卫战:如何让离职员工带不走的客户资源?
  • TCP的socket编程
  • 【unity实战】在Unity实现低耦合可复用的交互系统
  • 科技驯服烈日狂沙:中东沙漠农场的光储革命
  • SQL server之版本的初认知
  • 江协科技STM32入门教程——通信接口
  • 希尔排序和选择排序及计数排序的简单介绍