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

【leetcode】 45.跳跃游戏 ||

如果我们「贪心」地进行正向查找,每次找到可到达的最远位置,就可以在线性时间内得到最少的跳跃次数。

例如,对于数组 [2,3,1,2,4,2,3],初始位置是下标 0,从下标 0 出发,最远可到达下标 2。下标 0 可到达的位置中,下标 1 的值是 3,从下标 1 出发可以达到更远的位置,因此第一步到达下标 1。

从下标 1 出发,最远可到达下标 4。下标 1 可到达的位置中,下标 4 的值是 4 ,从下标 4 出发可以达到更远的位置,因此第二步到达下标 4。

在具体的实现中,我们维护当前能够到达的最大下标位置,记为边界。我们从左到右遍历数组,到达边界时,更新边界并将跳跃次数增加 1。

在遍历数组时,我们不访问最后一个元素,这是因为在访问最后一个元素之前,我们的边界一定大于等于最后一个位置,否则就无法跳到最后一个位置了。如果访问最后一个元素,在边界正好为最后一个位置的情况下,我们会增加一次「不必要的跳跃次数」,因此我们不必访问最后一个元素。

作者:力扣官方题解
代码:

int jump(int* nums, int numsSize) 
{int max = 0;int i = 0,steps = 0;int end=0;for (i = 0; i < numsSize-1; i++){	max = max < (nums[i] + i) ? (nums[i] + i) : max;//最远能到达的位置if (i==end){end = max;steps++;}}return steps;
}

http://www.lryc.cn/news/451907.html

相关文章:

  • coco(json)、yolo(txt)、voc(xml)标注格式的相互转换
  • 以太网交换安全:端口安全
  • [题解] Codeforces Round 976 (Div. 2) A ~ E
  • 【零基础入门产品经理】学习准备篇 | 需要学一些什么呢?
  • 第四届机器人、自动化与智能控制国际会议(ICRAIC 2024)征稿
  • [数据集][目标检测]电力场景防震锤缺陷检测数据集VOC+YOLO格式705张1类别
  • 【SpringBoot】
  • Linux操作系统中MongoDB
  • 2、.Net 前端框架:OpenAuth.Net - .Net宣传系列文章
  • unreal engine5制作动作类游戏时,我们使用刀剑等武器攻击怪物或敌方单位时,发现攻击特效、伤害等没有触发
  • 数据权限的设计与实现系列11——前端筛选器组件Everright-filter集成功能完善2
  • C++ 游戏开发
  • 【历年CSP-S复赛第一题】暴力解法与正解合集(2019-2022)
  • 基于PyQt5和SQLite的数据库操作程序
  • 在Ubuntu 20.04中安装CARLA
  • 【高中数学/对数/导数】曲线y=ln|x|过坐标原点的两切线方程为?
  • Qt CMake
  • 制造企业各部门如何参与生产成本控制与管理?
  • FireRedTTS - 小红书最新开源AI语音克隆合成系统 免训练一键音频克隆 本地一键整合包下载
  • 活体检测标签之2.4G有源RFID--SI24R2F+
  • Web3Auth 如何工作?
  • 问:SQL中join语法的差异?
  • 计算机网络各层有哪些协议?计算机网络协议解析:从拟定到实现,全面了解各层协议的作用与区别
  • 解决方案:机器学习中,基学习器 跟 弱学习器,有什么区别
  • 【Python】ftfy 使用指南:修复 Unicode 编码问题
  • 第9课-C++String功能的探索
  • 基于Hive和Hadoop的保险分析系统
  • 国庆节快乐前端(HTML+CSS+JavaScript+BootStrap.min.css)
  • 【重学 MySQL】四十九、阿里 MySQL 命名规范及 MySQL8 DDL 的原子化
  • PyTorch源码系列(一)——Optimizer源码详解