美文网首页
Java算法(4):跳跃游戏

Java算法(4):跳跃游戏

作者: starryxp | 来源:发表于2020-12-06 21:52 被阅读0次

给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。使用最少跳跃次数达到数组最后一个位置。

输入: [2,3,1,1,4]
输出: 2
解释: 从位置 0 到位置 1 跳 1 步, 然后跳 3 步到达最后一个位置。

解题思路:

贪心算法

代码:
public int jump(int[] nums) {
    int length = nums.length;
    int end = 0, maxPosition = 0, step = 0;
    for (int i = 0; i < length - 1; i++) {
        maxPosition = Math.max(maxPosition, i + nums[i]);
        if (end == i) {
            end = maxPosition;
            step++;
        }
    }
    return step;
}
复杂度分析:
  • 时间复杂度:O(N),需要遍历数组长度
  • 空间复杂度:O(1),只需要常数空间

相关文章

  • Java算法(4):跳跃游戏

    给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。使用最少跳跃次...

  • 跳跃游戏 II 算法swift

    题目描述 给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的...

  • Java 算法 - 跳跃游戏(贪心法和动态规划)

    注意,贪心法是错误的!贪心法在lintCode能够AC,leetCode不能AC。因为这道题是一道最优题,而贪心法...

  • 【算法题】15.跳跃游戏

    题目 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断...

  • 55. 跳跃游戏/ 1109. 航班预订统计

    55. 跳跃游戏 相关标签 : 数组, 贪心算法 1109. 航班预订统计 相关标签 : 数组 数学

  • Java技术书单

    算法/数据结构1.《算法(第4版)》2.《算法导论》3.《算法图解》 Java虚拟机《深入理解Java虚拟机》 并...

  • 55(45)-跳跃游戏Ⅰ、Ⅱ-贪心算法

    写在前面 贪心算法说简单也简单,因为找到局部的最优解就可以了,说难也确实不是很好想,因为这种思想在想的时候总会有种...

  • 贪心2

    demo4a:跳跃游戏(medium)----(贪心) 来源:leetcode 55 思路:找第一步能跳跃到的最远...

  • 跳跃游戏

    可以正向扫描数组,记录当前位置可以到达最远的位置,a、游标要小于可以到达最远的位置,否则return false。...

  • 跳跃游戏

    【链接】https://nanti.jisuanke.com/t/18【题目】给定一个非负整数数组,假定你的初始位...

网友评论

      本文标题:Java算法(4):跳跃游戏

      本文链接:https://www.haomeiwen.com/subject/udfawktx.html