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

LeetCode 跳跃游戏II题解

LeetCode 跳跃游戏II题解

题目描述

给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素表示你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。

示例

输入:nums = [2,3,1,1,4]
输出:2

解题思路

方法:贪心

思路

  • 使用贪心算法,在每一步都选择能够跳得最远的位置。
  • 维护当前覆盖范围和下一步能够跳得最远的范围。
  • 当当前位置达到当前覆盖范围的边界时,增加跳跃次数并更新覆盖范围。

复杂度分析

  • 时间复杂度:O(n)。
  • 空间复杂度:O(1)。

代码实现

def jump(nums): jumps = 0 cur_end = 0 farthest = 0 for i in range(len(nums) - 1): farthest = max(farthest, i + nums[i]) if i == cur_end: jumps += 1 cur_end = farthest return jumps # 测试 def test_jump(): nums = [2, 3, 1, 1, 4] print(jump(nums)) # 输出:2 if __name__ == "__main__": test_jump()

总结

跳跃游戏II是贪心算法的典型应用,通过在每一步选择能够跳得最远的位置来最小化跳跃次数。

http://www.jsqmd.com/news/831700/

相关文章:

  • Winhance中文版:Windows系统调优的完整指南与实战应用
  • ESP32-S2/S3 UF2引导程序烧录指南:Web工具、命令行与Arduino IDE三种方法详解
  • Go语言轻量级规则引擎Airules:高性能架构与微服务实践
  • Bootstrap5 Jumbotron 深入解析
  • 震惊!匹克球鞋工厂大揭秘,这十家竟在排名前十!
  • CSS中的filter属性详解
  • Python课后习题训练记录Day122
  • 智创未来:2025—2026年度高含金量计算机与AI Agent赛事全景盘点
  • MySQL sever安装失败,各位大佬,帮帮忙
  • PPO 原理与应用
  • 国产核心板FET113i-S适配电力FTU:硬件设计、RT-Thread实时性与通信优化全解析
  • SAA+:零样本异常分割的工业实践与多模态提示调优
  • ATTCK实战系列——蓝队防御(六)应急响应复盘
  • 高效论文阅读:三层递进工作流与知识管理实践指南
  • Logic Pro 怎么导出 MP3?超详细导出教程(2026最新版)一文搞定!
  • LabVIEW数据采集系统:生产者-消费者模式与TDMS文件存储实战
  • 多模态大语言模型如何理解色彩:从原理到实践
  • OpenHarness:统一大语言模型评估框架的设计原理与工程实践
  • RK3288嵌入式开发实战:硬件架构、软件定制与典型应用场景解析
  • 美国无人机合规飞行指南:FAA注册、Part 107规则与安全操作全解析
  • 通过Taotoken模型广场快速选型并获取对应API调用示例
  • 越刷越空?不是自控力太差,是你的大脑“最高权限”丢了
  • 由局域网信道利用率引发猜想
  • 【Midjourney Mud印相终极指南】:20年图像生成专家首度公开3类Mud纹理映射失效根因与6步精准复刻法
  • ATmega48驱动康威生命游戏:模块化LED矩阵的硬件实现与扩展
  • AI应用安全护栏:构建大语言模型交互的内容过滤与风险控制系统
  • AJAX与Fetch:前端网络请求从入门到精通
  • 蒸汽烘干散热器哪家好 行业口碑优选 适配多场景烘干需求
  • 小智聊天机器人的本地化部署。
  • 章贡区专业的种植牙医院哪家强