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

news/2025/1/20 2:17:59/

问题背景

给定一个长度为 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.ppmy.cn/news/1564550.html

相关文章

EAMM: 通过基于音频的情感感知运动模型实现的一次性情感对话人脸合成

EAMM: 通过基于音频的情感感知运动模型实现的一次性情感对话人脸合成 1所有的材料都可以在EAMM: One-Shot Emotional Talking Face via Audio-Based Emotion-Aware Motion Model网站上找到。 摘要 尽管音频驱动的对话人脸生成技术已取得显著进展&#xff0c;但现有方法要么忽…

JAVA实现五子棋小游戏(附源码)

文章目录 一、设计来源捡金币闯关小游戏讲解1.1 主界面1.2 黑棋胜利界面1.3 白棋胜利界面 二、效果和源码2.1 动态效果2.2 源代码 源码下载更多优质源码分享 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/145161039 JA…

IT程序设计文档,软件需求设计文档,详细设计模板(Word原件)

1引言 1.1编写目的 1.2项目背景 1.3参考材料 2系统总体设计 2.1整体架构 2.2整体功能架构 2.3整体技术架构 2.4设计目标 2.5.1总体原则 2.5.2实用性和先进性 2.5.3标准化、开放性、兼容性 2.5.4高可靠性、稳定性 2.5.5易用性 2.5.6灵活性和可扩展性 2.5.7经济性…

vue v-if和key值的注意的地方

v-if的使用 v-if 用来判断元素的显示与隐藏&#xff0c; 与v-show的相同和区别&#xff1a; v-if和v-show 为true 都占据位置&#xff0c;为false都不占有位置 控制手段&#xff1a;v-if 通过删除和添加dom结构进行显示和隐藏&#xff0c;v-show通过css的display&#xff1…

openssl s_server源码剥离

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…

Web3与加密技术的结合:增强个人隐私保护的未来趋势

随着互联网的快速发展&#xff0c;个人隐私和数据安全问题越来越受到关注。Web3作为新一代互联网架构&#xff0c;凭借其去中心化的特性&#xff0c;为个人隐私保护提供了全新的解决方案。而加密技术则是Web3的重要组成部分&#xff0c;进一步增强了隐私保护的能力。本文将探讨…

LINUX 内核设计于实现 阅读记录(2025.01.14)

文章目录 一、内核历史1、内核简介2、LINUX 内核与 UNIX 内核比较3、LINUX内核版本命名 二、从内核出发1、获取内核源码&#xff08;1&#xff09;查看Linux内核版本 uname -r&#xff08;2&#xff09;下载源码 https://www.kernel.org/&#xff08;3&#xff09;编译内核 2、…

域名劫持是怎么回事?怎么解决?

域名劫持是一种常见的DNS攻击方式&#xff0c;攻击者通过非法手段获取域名控制权&#xff0c;改变域名解析的目的地址&#xff0c;使得用户在访问该域名时被重定向到攻击者指定的页面&#xff0c;对企业的品牌形象和业务开展造成很大影响。那域名劫持是怎么回事&#xff1f;怎么…