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

【Hot 100】45. 跳跃游戏 II

目录

  • 引言
  • 跳跃游戏 II
    • dp解题
    • 贪心解题

请添加图片描述

  • 🙋‍♂️ 作者:海码007
  • 📜 专栏:算法专栏
  • 💥 标题:【Hot 100】45. 跳跃游戏 II
  • ❣️ 寄语:书到用时方恨少,事非经过不知难!

引言

跳跃游戏 II

  • 🎈 题目链接:
  • 🎈 做题状态:

dp解题

思路:
遍历nums数组,并且记录当前位置可以跳跃到的地方的最小步数,通过遍历 nums[i] 的值来更新每个位置的步数,并且需要记录最小步数。其实可以有一个优化技巧,就是记录minSteps数组此时更新到的最右侧边界索引。如果当前位置能超越这个索引就更新后面的步数值,如果超不过就不需要更新。

class Solution {
public:int jump(vector<int>& nums) {vector<int> minSteps(nums.size(), INT_MAX);minSteps[0] = 0;// 遍历nums,并更新每个位置跳跃所需要的最短距离。for(int i = 0; i < nums.size()-1; ++i){int step = nums[i]; // 记录当前可以跳跃的步数for (int j = i + 1; j <= i + step && j < nums.size(); ++j){minSteps[j] = min(minSteps[j],  minSteps[i] + 1); }}return minSteps[nums.size()-1];}
};

贪心解题

贪心的思路理解起来还是有点费力的。

在每一次跳跃时,总是选择当前跳跃范围内能跳最远的位置,作为下一次跳跃的边界,以此保证跳跃次数最少。

虽然跳跃是“在到达边界 end 的时候触发”,但能跳多远,取决于之前所有点探索的最远跳跃距离 farthest;

换句话说:你起跳的位置未必是边界点本身,而是边界范围内跳得最远的那个位置。

👉 这正体现了贪心策略的精髓:不回头、只选择当前最优。

class Solution {
public:int jump(vector<int>& nums) {int steps = 0;       // 最终要返回的跳跃次数int end = 0;         // 当前这一跳的边界(跳到这就得起跳)int farthest = 0;    // 从当前范围中能跳到的最远位置// 注意:我们只遍历到 nums.size() - 2,因为最后一跳跳到终点时无需再跳for (int i = 0; i < nums.size() - 1; ++i){// 更新当前能跳到的最远位置farthest = max(farthest, i + nums[i]);// 如果到达当前跳跃的边界,就必须跳一次if (i == end){++steps;         // 起跳!end = farthest; // 重新设置下一跳的边界}}return steps;}
};
http://www.xdnf.cn/news/10577.html

相关文章:

  • Python训练第四十一天
  • 【创新实训个人博客】实现了新的前端界面
  • CP4-OFDM模糊函数原理及仿真
  • 三方接口设计注意事项
  • 人工智能在智能能源管理中的创新应用与未来趋势
  • ContentProvider URI匹配机制详解
  • DELETE 与 TRUNCATE、DROP 的区别
  • 【Java基础】Java基础语法到高级特性
  • Canvas: trying to draw too large(256032000bytes) bitmap.
  • 02.上帝之心算法用GPU计算提速50倍
  • Java对象的内存结构
  • 华为IP(7)
  • 工作流引擎-04-流程引擎(Process Engine)activiti 优秀开源项目
  • 【AI论文】SWE-rebench:一个用于软件工程代理的任务收集和净化评估的自动化管道
  • 搭建基于VsCode的ESP32的开发环境教程
  • PTA-根据已有类Worker,使用LinkedList编写一个WorkerList类,实现计算所有工人总工资的功能。
  • “候选对话链”(Candidate Dialogue Chain)概念
  • DAY18C语言笔记
  • Odoo 中SCSS的使用指南
  • AR/MR实时光照阴影开发教程
  • VSCODE的终端无法执行npm命令
  • rsync服务的搭建
  • vue-10( 动态路由匹配和路由参数)
  • 标准精读:2025 《可信数据空间 技术架构》【附全文阅读】
  • 机器学习:逻辑回归与混淆矩阵
  • [蓝桥杯]缩位求和
  • 李臻20242817_安全文件传输系统项目报告_第14周
  • Axure组件即拖即用:横向拖动菜单(支持左右拖动选中交互)
  • 8088单板机地址映射表
  • 数学分析——一致性(均匀性)和收敛