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贪心)的主要内容,如果未能解决你的问题,请参考以下文章