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

【Leetcode 热题 100】45. 跳跃游戏 II

问题背景

给定一个长度为 n n n 0 0 0 索引 整数数组 n u m s nums nums。初始位置为 n u m s [ 0 ] nums[0] nums[0]
每个元素 n u m s [ i ] nums[i] nums[i] 表示从索引 i i i 向前跳转的最大长度。换句话说,如果你在 n u m s [ i ] nums[i] nums[i] 处,你可以跳转到任意 n u m s [ i + j ] nums[i + j] nums[i+j] 处:

  • 0 ≤ j ≤ n u m s [ i ] 0 \le j \le nums[i] 0jnums[i]
  • i + j < n i + j \lt n i+j<n
    返回到达 n u m s [ n − 1 ] nums[n - 1] nums[n1] 的最小跳跃次数。生成的测试用例可以到达 n u m s [ n − 1 ] nums[n - 1] nums[n1]

数据约束

  • 1 ≤ n u m s . l e n g t h ≤ 1 0 4 1 \le nums.length \le 10 ^ 4 1nums.length104
  • 0 ≤ n u m s [ i ] ≤ 1000 0 \le nums[i] \le 1000 0nums[i]1000
  • 题目保证可以到达 n u m s [ n − 1 ] nums[n-1] nums[n1]

解题过程

之前每日一题已经做过了,具体可以参考 每日一题的题解,再写一遍加强记忆。

具体实现

class Solution {public int jump(int[] nums) {int res = 0;int curEnd = 0;int nextEnd = 0;// 由于到达的位置是 n - 1,那么在 n - 2 的位置上有可能进行最后一次操作for(int i = 0; i < nums.length - 1; i++) {// 在每个位置上更新能够到达的最远边界nextEnd = Math.max(nextEnd, i + nums[i]);// 如果当前已经不能继续往前走,那么在这个位置上造桥if(i == curEnd) {curEnd = nextEnd;res++;}}return res;}
}
http://www.lryc.cn/news/523908.html

相关文章:

  • C/C++ 时间复杂度(On)
  • 【STM32-学习笔记-10-】BKP备份寄存器+时间戳
  • React 中hooks之 React.memo 和 useMemo用法总结
  • 日志收集Day001
  • 机器人“大脑+小脑”范式:算力魔方赋能智能自主导航
  • python程序跑起来后,然后引用的数据文件发生了更新,python读取的数据会发生变化吗
  • VSCode最新离线插件拓展下载方式
  • 算法题目总结-栈和队列
  • IO进程----进程
  • 【机器学习实战高阶】基于深度学习的图像分割
  • 「免填邀请码」赋能各类APP,提升转化率与用户体验
  • 基于海思soc的智能产品开发(视频的后续开发)
  • 创建 pdf 合同模板
  • 2024 年度学习总结
  • CSS笔记基础篇02——浮动、标准流、定位、CSS精灵、字体图标
  • C++ 面向对象(继承)
  • Top期刊算法!RIME-CNN-BiLSTM-Attention系列四模型多变量时序预测
  • 数据结构 数组
  • Kivy App开发之UX控件Bubble气泡
  • 从零到一:打造属于你的AI智能体,支持本地部署
  • 成就与远见:2024年技术与思维的升华
  • 深搜与回溯——扫地机器人问题解析与代码实现
  • 【大数据2025】Hadoop 万字讲解
  • win内核内部直接irp读取文件写入文件
  • 1. 基于图像的三维重建
  • 如何确保Python爬虫不违反微店规定
  • Spring Event和MQ的区别和使用场景
  • SpringBoot:websocket 实现后端主动前端推送数据
  • 嵌入式硬件篇---PID控制
  • 小程序获取微信运动步数