首页 > 其他分享 >45. 跳跃游戏 II

45. 跳跃游戏 II

时间:2023-07-29 23:11:28浏览次数:32  
标签:cur nums int res 45 步长 II step 跳跃

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

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/jump-game-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 

public int jump(int[] nums) {
        if (nums.length == 1) return 0;
        if (nums[0] >= nums.length - 1) return 1;
        //记录跳了几步
        int res = 0, len = nums.length, temp = 0;
        //当前位置最大步长
        int step = nums[0];
        //当前位置的索引
        int cur = 0;
        //走循环判断的起点索引,也就是上一个点的最大步长
        //int index = 0;
        //下一轮起点
        int next_start = cur + step;
        int i = 1;
        while (i <= step && cur < nums.length) {
            //如果当前起点加最大步长可达终点,直接跳过去
            if (cur + step >= len - 1) {
                res++;
                break;
            }
            //每次一开始的时候记录一下最大步长的时候下一步能跳多远
            if (i == 1) temp = nums[cur + step] + step;
            //找当前步长范围内覆盖的点中可以跳的更远的
            if (temp <= nums[i + cur] + i) {
                temp = nums[i + cur] + i;
                next_start = i + cur;
            }
            i++;
            //循环至最大步长,下一步更新起点、最大步长等,进入下一轮判断,也就是跳到这个点
            if (i > step){
                res++;
                i = 1;
                cur = next_start;
                step = nums[cur];
            }
        }
        return res;
    }

 

标签:cur,nums,int,res,45,步长,II,step,跳跃
From: https://www.cnblogs.com/RynerLee/p/17590756.html

相关文章

  • 【230729-3】如图,在等腰直角三角形ABC中,角BAC=90度,AB=AC,角MAN=45度,BM=1,CN=3. 求:MN的
    【230729-3】如图,在等腰直角三角形ABC中,角BAC=90度,AB=AC,角MAN=45度,BM=1,CN=3. 求:MN的长度?......
  • 2023.7.28 并行课程III
    根据题目要求,可以分析出,需要按照拓扑序上完所有的课。每次上课都需要一定时间,可以同时上任意多门课,要求最少得时间。比如说示例1中的一个拓扑序是123,可以让12并行,因此只需要3+5=8个时间。可以先用拓扑排序,得出拓扑序,然后进行dp(满足拓扑序即可dp)。dp时,对每个节点,令其花费时间为......
  • 【CMU15-445 FALL 2022】Project #1 - Buffer Pool
    About实验官网Project#1-BufferPool在线评测网站gradescopeLabTask#1-ExtendibleHashTable详见——【CMU15-445FALL2022】Project#1-ExtendableHashing如果链接失效,请查看当前平台我之前发布的文章。Task#2-LRU-KReplacementPolicyConcept相关参考LRU-K和2Q......
  • ascii编码
    1、介绍ASCII(AmericanStandardCodeforInformationInterchange):美国信息交换标准代码是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准ISO/IEC646。ASCII第一次以规范标准的类型发表是在1967年,最后一次更......
  • P9459 浴眼盯真 题解
    由于我不会使用正则表达式,所以我只能使用基础Python语法QwQ。[input().split()for_inrange(int(input()))]是个列表生成器,效果是产生一个长度为\(T\)的列表,列表的元素是以每一行以空格为分割符的字符串列表。for(a,b,c,d)in[]可以用\(a,b,c,d\)来复制列表中每个元素......
  • P9451 [ZSHOI-R1] 新概念报数 题解
    满足\(\operatorname{popcount}(x)<3\)的数实际上很少,直接把所有这些数扔到set里面,询问就返回set中\(x\)的下一个元素即可。记得开longlong。set内的元素数量是\(\log^2w\),所以复杂度是\(\mathcalO(\log^2w\log\log^2w+T\log\log^2w)=\mathcalO(\log^2w\log\logw......
  • 最完美WIN10_Pro_22H2.19045.3271软件选装纯净版VIP51.1
    【系统简介】=============================================================1.本次更新母盘来自UUP_WIN10_PRO_22H2.19045.3271。进一步精简优化调整。2.只为呈现最好的作品,手工精简优化部分较多。3.OS版本号为19045.3271。个别要求高的就下MSDN吧,里面啥功能都有。4.集成《DrvCeo......
  • 如何禁止别人访问我的445
    实验四第一种:打开运行,输入services.msc,禁止server服务,来禁止445端口的开放,于是外部无法通过445端口进入    第二种:禁⽌被访问445,配置控制⾯板--防⽕墙--⾼级设置--⾼级安全防⽕墙--添加⼊站规则(在win7及以上系统,win2008及以上系统)  点击防火墙,防火墙里有高级......
  • STM32使用硬件IIC读取SHTC3温湿度传感器 显示在OLED屏上
    STM32使用硬件I2C读取SHTC3温湿度传感器的数据并显示在0.96寸OLED屏上。我用的是STM32F103C8T6,程序用的是ST标准库写的。实现效果图I2C协议简介I2C通讯协议(Inter-IntegratedCircuit)是由Phiilps公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要USART、CAN等通讯协议的外......
  • 我的博客今天1岁45天了,我领取了…
    1岁45天了,我领取了徽章.  2011.07.24,我在新浪博客安家。2011.07.24,我写下了第一篇博文:《2011年07月24日的日记》。至今,我的博客共获得269次访问。这些年,新浪博客伴我点点滴滴谱写生活!......