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

跳跃游戏Ⅱ C++简单代码

给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]

每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i + j] 处:

  • 0 <= j <= nums[i] 
  • i + j < n

返回到达 nums[n - 1] 的最小跳跃次数。生成的测试用例可以到达 nums[n - 1]

示例 1:

输入: nums = [2,3,1,1,4]
输出: 2
解释: 跳到最后一个位置的最小跳跃数是 2。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。

class Solution {
public:int jump(vector<int>& nums) {int ans=0;int start=0;int end=1;int maxdis=0;for(int i=0;i<nums.size();i++)//判断是否能够到达终点{if(i>maxdis){return 0;}maxdis=(i+nums[i])>maxdis? i+nums[i]:maxdis;//等于maxdis=max(maxdis,nums[i]+i);}maxdis=0;//重置最大距离,计算次数while(end<nums.size()){for(int i=start;i<end;i++)//只需要在一次 跳跃 完成时,更新下一次能跳到最远的距离。并以此刻作为时机来更新 跳跃 次数。就可以在一次 for 循环中处理。{maxdis=max(maxdis,nums[i]+i);}start=end;end=maxdis+1;ans++;}return ans;}
};

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

相关文章:

  • Gitlab中access token 和Deploy token的区别
  • 【多线程】线程的五种创建方法
  • 关闭窗口工具类 - C#小函数类推荐
  • Xilinx FPGA 原语解析(一):IBUFDS_GTE3 差分时钟输入缓冲器
  • 力扣SQL50 患某种疾病的患者 正则表达式
  • k8s集群的资源发布方式(滚动/蓝绿/灰度发布)及声明式管理方法
  • SwiftUI 中掌握 ScrollView 的使用:滚动可见性
  • 中药养发护发
  • Java面试题-集合类
  • 【Vue3】组件通信之v-model
  • 【Golang 面试 - 进阶题】每日 3 题(二)
  • Java中等题-多数元素2(力扣)【摩尔投票升级版】
  • 100条超牛的DOS命令
  • 大数据信用报告查询会不会留下查询记录?怎么选择查询平台?
  • JS【详解】内存泄漏(含泄漏场景、避免方案、检测方法),垃圾回收 GC (含引用计数、标记清除、标记整理、分代式垃圾回收)
  • 第三期书生大模型实战营之Llamaindex RAG实践
  • 【从0到1进阶Redis】Jedis 理解事务
  • MySQL之Lost connection to MySQL server during query复现测试
  • 中国AI大模型场景探索及产业应用调研报告
  • Linux--shell脚本语言—/—<1>
  • 【java框架开发技术点】通过反射机制调用类中的私有或受保护的方法
  • 你知道这些鼎鼎大名的Java底层核心公司吗
  • C++入门级文章
  • modelsim仿真quartus IP
  • PCB设计经验——布线原则
  • C++进阶:设计模式___适配器模式
  • “八股文“在现代编程面试中的角色重塑:助力、阻力还是桥梁?
  • Android 安装应用-浏览阶段
  • JavaEE 初阶(10)——多线程8之“单例模式”
  • Javascript常见设计模式