0
点赞
收藏
分享

微信扫一扫

Java力扣题解:45. 跳跃游戏 II

笑望叔叔 2022-02-22 阅读 37
leetcode

题目

分析

代码


题目

给你一个非负整数数组 nums ,你最初位于数组的第一个位置。

数组中的每个元素代表你在该位置可以跳跃的最大长度。

你的目标是使用最少的跳跃次数到达数组的最后一个位置。

假设你总是可以到达数组的最后一个位置。

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

分析

这道题是贪心算法的思想。

记录下一步的最远距离,最远到达的位置就是end,当到了这一个位置,就需要再跳一步了。这个时候步数加一。

代码

class Solution {
    public int jump(int[] nums) {
        int length = nums.length;
        int end = 0;
        int maxPosition = 0; 
        int steps = 0;
        for (int i = 0; i < length - 1; i++) {
            maxPosition = Math.max(maxPosition, i + nums[i]); 
            if (i == end) {
                end = maxPosition;
                steps++;
            }
        }
        return steps;
    }
}
举报

相关推荐

0 条评论