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

leetcode45 跳跃游戏II

题目

给定一个长度为 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]。

示例

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

解析

这道题和『跳跃游戏I』不同的就是上道题求能不能跳到终点,这道题求最小几步能跳到终点。
在遍历数组的时候,不必要访问数组的最后一个元素,因为题目保证了一定能跳到最后一个位置,那我们在访问最后一个元素的时候,我们的边界一定是大于等于最后一个元素。如果访问最后一个元素,在边界恰好为最后一个位置的情况下,会增加一次次数(解释的是下面代码中i < n-1的逻辑)。
举个例子:2,3,1,1,4 这个数组,开始的时候2可以跳到3或1的位置,假如跳到3,则又可以直接跳到终点,只需要两步即可;如果是i <= n-1的话,在n-1的位置又要算一下,然后命中step++,结果就不对了

func jump(nums []int) int {n := len(nums)maxPosition := 0 // 最大可跳步数end := 0         // 边界step := 0for i := 0; i < n-1; i++ { // 这里要小于n-1maxPosition = max(maxPosition, i+nums[i])if i == end { // 每次到边界,就将边界更新成最大可跳步数,并将步数+1end = maxPositionstep++}}return step
}

相关文章:

  • 使用Python进行音频处理
  • k8s学习笔记(一)
  • 【AI】消融实验ablation study
  • Zookeeper 集群节点故障剔除、切换、恢复原理
  • CFD笔记
  • 【ai】tx2-nx:搭配torch的torchvision
  • MySQL之复制(七)
  • RPM命令和YUM命令
  • fastadmin多语言切换设置
  • Python里引用了time包后,不能再命名time变量了吗?
  • 基于springboot的人口老龄化社区服务与管理平台源码数据库
  • 1039. 多边形三角剖分的最低得分
  • 鸿蒙开发通信与连接:【@ohos.rpc (RPC通信)】
  • 【Go语言】Gin 框架教程
  • vue嵌套H5到APP,安卓键盘顶起页面内容错乱解决方案
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • 「面试题」如何实现一个圣杯布局?
  • 【面试系列】之二:关于js原型
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • Brief introduction of how to 'Call, Apply and Bind'
  • eclipse(luna)创建web工程
  • gitlab-ci配置详解(一)
  • HomeBrew常规使用教程
  • JavaScript异步流程控制的前世今生
  • nodejs实现webservice问题总结
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • vuex 学习笔记 01
  • Vue学习第二天
  • vue总结
  • 从输入URL到页面加载发生了什么
  • 复习Javascript专题(四):js中的深浅拷贝
  • 给github项目添加CI badge
  • 机器学习 vs. 深度学习
  • 前嗅ForeSpider中数据浏览界面介绍
  • 如何优雅地使用 Sublime Text
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (04)odoo视图操作
  • (21)起落架/可伸缩相机支架
  • (pytorch进阶之路)扩散概率模型
  • (附源码)php投票系统 毕业设计 121500
  • (含答案)C++笔试题你可以答对多少?
  • (函数)颠倒字符串顺序(C语言)
  • (黑马C++)L06 重载与继承
  • (九)One-Wire总线-DS18B20
  • (南京观海微电子)——示波器使用介绍
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (原創) 未来三学期想要修的课 (日記)
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)