Leetcode55. 跳跃游戏(JAVA贪心)

Posted !0 !

tags:

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

题目链接:https://leetcode-cn.com/problems/jump-game/

解题思路

我们可以用r记录能跳到的最右边的点,然后用i遍历每个点能跳到的距离,然后更新能挑到最右边的点。

代码

class Solution {
    public boolean canJump(int[] nums) {
        int r = 0;  //能跳到最右边的点
        for (int i = 0; i < nums.length; ++i) {
            if (i <= r) {   //如果i小于等于r代表能到达i这个点
                r = Math.max(r, i + nums[i]);   //更新能达到的最右边的点
                if (r >= nums.length - 1)   //如果最右边的点超过了数组大小,返回true
                    return true;
            }
        }
        return false;   //说明达不到最右边,返回false
    }
}

复杂度分析

  • 时间复杂度:O(n)
  • 空间复杂度:O(1)

以上是关于Leetcode55. 跳跃游戏(JAVA贪心)的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode55.跳跃游戏(中等)贪心算法/动态规划

力扣Leetcode 45. 跳跃游戏 II - 贪心思想

leetcode每日一题:55. 跳跃游戏

贪心算法问题-LeetCode 5545(贪心算法,跳跃问题)

LeetCode55. 跳跃游戏

贪心算法:跳跃游戏