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)。

相关推荐
董董灿是个攻城狮8 分钟前
大模型连载2:初步认识 tokenizer 的过程
算法
地平线开发者36 分钟前
地平线 VP 接口工程实践(一):hbVPRoiResize 接口功能、使用约束与典型问题总结
算法·自动驾驶
罗西的思考43 分钟前
AI Agent框架探秘:拆解 OpenHands(10)--- Runtime
人工智能·算法·机器学习
HXhlx4 小时前
CART决策树基本原理
算法·机器学习
Wect5 小时前
LeetCode 210. 课程表 II 题解:Kahn算法+DFS 双解法精讲
前端·算法·typescript
颜酱5 小时前
单调队列:滑动窗口极值问题的最优解(通用模板版)
javascript·后端·算法
Gorway12 小时前
解析残差网络 (ResNet)
算法
拖拉斯旋风12 小时前
LeetCode 经典算法题解析:优先队列与广度优先搜索的巧妙应用
算法
Wect12 小时前
LeetCode 207. 课程表:两种解法(BFS+DFS)详细解析
前端·算法·typescript
xiezhr13 小时前
米哈游36岁程序员被曝复工当晚猝死出租屋内
游戏·程序员·游戏开发