欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

leetcode 45 跳跃游戏II

程序员文章站 2022-07-07 15:47:13
...

leetcode 45 跳跃游戏II

如果要考虑所有情况在得到结果显然耗费太多时间,既然要最少跳跃次数,即每一跳的可达范围要最大,例如2,3,1,1,4.第一跳可达3,1两个位置,所以在一步之内可达3,1;然后选出3,1,两个位置 那个可以到达更远的距离,得到第二步可达的范围,依次类推知道可达范围包含终点。

class Solution {
    public int jump(int[] nums) {
        if(nums.length == 1) return 0;
        int reach = 0;
        int nextreach = nums[0];
        int step = 0;
        for(int i = 0;i<nums.length;i++){
            nextreach = Math.max(i+nums[i],nextreach);
            if(nextreach >= nums.length-1) return (step+1);
            if(i == reach){
                step++;
                reach = nextreach;
            }
        }
        return step;
    }
}

 

相关标签: leetcode