LeetCode[中等] 55.跳跃游戏

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

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

思路 贪心算法

可达位置reach,只要存在一个位置numsi,其本身可达,且它跳跃的最大长度 i+numsi >= 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)。

相关推荐
不会就选b15 小时前
算法日常・每日刷题--<贪心>14
算法
mmmmath_318 小时前
LeetCode.541.反转字符串II
数据结构·算法·leetcode
Navigator_Z18 小时前
LeetCode //MySQL - 1251. Average Selling Price
c语言·算法·leetcode
醇氧19 小时前
MySQL 8.0 系统表损坏与引擎转换故障排查实战
数据结构·算法
大熊背19 小时前
《Color constancy by characterization of illumination chromaticity》之色度色域最大化算法(二)
算法·白平衡·色度·色温
钓鱼的肝19 小时前
梳理(1-5)
c++·经验分享·笔记·算法·青少年编程
参.商.20 小时前
【Day 53】76. 最小覆盖子串
leetcode·golang
HZZD_HZZD20 小时前
CSDN_批发市场水电漏损归因算法LAM的原理与落地
嵌入式硬件·物联网·算法
shirsl21 小时前
算法 Day 5 树 / 二叉树 + DFS
数据结构·python·算法