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

Leetcode面试经典150题-45.跳跃游戏II

 解法都在代码里,不懂就留言或者私信,这个题绝对比动态规划的解法强

class Solution {/**本题我们先不用动态规划了,因为从任何一个位置都可能跳到最后一个位置,用动态规划的成本太高了本题的解题思路:看看某个步数内最多能跳到多远,如果某步内能涵盖最后一个位置,那这个就是最小的步数 */public int jump(int[] nums) {/**你就在终点,跳啥啊 */if(nums.length == 1) {return 0;}/**否则是需要跳的,至少一步,我们定义两个变量curStep代表当前跳的步数curMax代表当前步数最多可以跳多远,比如0位置的值是3,那就是curStep是1,curMax是3代表一步之内最多能跳到3*/int curStep = 1;int curMax = nums[0];/**假设再多跳一步能跳到多远 */int nextStepMax = 0;for(int i = 1; i < nums.length; i++) {/**如果curStep覆盖不了,那就得多跳一步,curStep++同时看看 */if(i > curMax) {curStep ++;/**之前已经计算过多跳一步最远可以跳到哪里了,放在了nextStepMax*/curMax = nextStepMax;/**这里注意nextStepMax也要更新 */nextStepMax = Math.max(nextStepMax,i + nums[i]);} else {/**当前在curStep的覆盖范围内,如果让我多跳一步,我最多可以跳多远,在当前覆盖范围内看看i+nums[i]会不会比原来的nextStepMax大,谁大取谁*/nextStepMax = Math.max(nextStepMax,i + nums[i]);}/**如果当前步数可以到达最后了,直接返回 */if(curMax >= nums.length - 1) {break;}}return curStep;}
}

运行结果

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C++ 变量、输入输出、表达式和顺序语句 ac-wing
  • css加载一张图片 设置整个页面背景
  • 前端面试宝典【CSS篇】【8】
  • 使用WSL在Windows上安装Linux
  • LuaJit分析(六)luajit -bl 命令分析
  • Java 入门指南:Java 并发编程 —— JMM Java内存模型
  • sql-labs靶场(41-50)
  • Linux主机网络参数的设置—IP地址的作用和类型
  • 十一头像红旗怎么弄的?3个方法轻松教会你!
  • 贴梗海棠T2T基因组-文献精读40
  • 网优学习干货:2.6G仿真操作(2)
  • PTA - C语言接口题集2
  • 算法练习题06:leetcode793每日温度
  • 04:布局规划
  • 一个php快速项目搭建框架源码,带一键CURD等功能
  • CentOS 7 防火墙操作
  • HTTP那些事
  • IDEA常用插件整理
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • log4j2输出到kafka
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • Python学习之路13-记分
  • Python中eval与exec的使用及区别
  • SAP云平台里Global Account和Sub Account的关系
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • 创建一个Struts2项目maven 方式
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 理清楚Vue的结构
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 算法系列——算法入门之递归分而治之思想的实现
  • 微服务入门【系列视频课程】
  • 用Visual Studio开发以太坊智能合约
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • 正则表达式-基础知识Review
  • ​补​充​经​纬​恒​润​一​面​
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #07【面试问题整理】嵌入式软件工程师
  • #QT(串口助手-界面)
  • ${factoryList }后面有空格不影响
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (el-Transfer)操作(不使用 ts):Element-plus 中 Select 组件动态设置 options 值需求的解决过程
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (原)Matlab的svmtrain和svmclassify
  • (转)C#调用WebService 基础
  • ./configure、make、make install 命令
  • .bat文件调用java类的main方法
  • .mysql secret在哪_MYSQL基本操作(上)
  • .NET Core 中插件式开发实现
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查