java刷题--45跳跃游戏II

Posted Anrys

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java刷题--45跳跃游戏II相关的知识,希望对你有一定的参考价值。

java刷题--45跳跃游戏II

题目

在这里插入图片描述

代码

class Solution {
    public int jump(int[] nums) {
        /*我们使用 end 记录 0 位置的最远距离, 即 3
        使用 k 记录 1 2 3 位置能够跳的最远距离
        当 i 遍历到 end 的时候,我们需要将步数 step + 1,即开始一次新的起跳,然后将 end 更新为 k
        */
        int n = nums.length;
        if(n==1) return 0;
        int count=0,k=0,end=0;
        for(int i=0;i<n;i++) {
            //找到第一个区间的最大跳跃步数并记录为k,在下下个if中更新end
            k = Math.max(k,i+nums[i]);
            if(k>=n-1) return count+1; //提前结束计数了
            if(end==i) { //计数
                count++;
                end = k;
            }
        }return count;
    }
}

结果

在这里插入图片描述

以上是关于java刷题--45跳跃游戏II的主要内容,如果未能解决你的问题,请参考以下文章

java 45.跳跃游戏II(#)。java

java 45.跳跃游戏II(#)。java

java 45.跳跃游戏II(#)。java

java 45.跳跃游戏II(#)。java

java 45.跳跃游戏II(#)。java

java 45.跳跃游戏II(#)。java