LeetCode[中等] 55.跳跃游戏

给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。

判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false

思路 贪心算法

可达位置reach,只要存在一个位置nums[i],其本身可达,且它跳跃的最大长度 i+nums[i] >= reach,那么reach也可以到达。

cs 复制代码
public class Solution {
    public bool CanJump(int[] nums) {
        int reach = 0;
        for(int i = 0; i < nums.Length; i++)
        {
            if(i > reach)
                return false;
            reach = Math.Max(reach, i + nums[i]);
        }
        return true;
    }
}

复杂度分析

  • 时间复杂度:O(n),其中 n 是数组 nums 的长度。状态数是 O(n),每个状态的计算时间是 O(1),因此时间复杂度是 O(n)。

  • 空间复杂度:O(1)。

相关推荐
van叶~6 分钟前
算法妙妙屋-------1.递归的深邃回响:二叉树的奇妙剪枝
c++·算法
简简单单做算法7 分钟前
基于Retinex算法的图像去雾matlab仿真
算法·matlab·图像去雾·retinex
云卓SKYDROID22 分钟前
除草机器人算法以及技术详解!
算法·机器人·科普·高科技·云卓科技·算法技术
半盏茶香1 小时前
【C语言】分支和循环详解(下)猜数字游戏
c语言·开发语言·c++·算法·游戏
徐子童1 小时前
双指针算法习题解答
算法
想要打 Acm 的小周同学呀1 小时前
LRU缓存算法
java·算法·缓存
劲夫学编程2 小时前
leetcode:杨辉三角
算法·leetcode·职场和发展
毕竟秋山澪2 小时前
孤岛的总面积(Dfs C#
算法·深度优先
浮生如梦_4 小时前
Halcon基于laws纹理特征的SVM分类
图像处理·人工智能·算法·支持向量机·计算机视觉·分类·视觉检测
励志成为嵌入式工程师6 小时前
c语言简单编程练习9
c语言·开发语言·算法·vim