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

相关推荐
向宇it11 分钟前
【unity进阶知识6】Resources的使用,如何封装一个Resources资源管理器
开发语言·游戏·unity·游戏引擎
我与岁月的森林13 分钟前
基于ScriptableObject设计游戏数据表
游戏·unity·数据存储
nick987621 分钟前
信号处理之中值滤波
人工智能·算法·信号处理
宇宙超粒终端控制中心37 分钟前
leetcode34. 在排序数组中查找元素的第一个和最后一个位置
算法·leetcode·二分查找
sp_fyf_20241 小时前
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-01
人工智能·神经网络·算法·语言模型·自然语言处理·数据挖掘
yi碗汤园1 小时前
C#自定义工具类-数组工具类
开发语言·算法·c#
hunteritself1 小时前
ChatGPT实时语音将于本周向免费用户推出:OpenAI DevDay 2024详细解读
人工智能·gpt·算法·chatgpt·openai·语音识别
脑子不好真君1 小时前
线性代数书中求解齐次线性方程组、非齐次线性方程组方法的特点和缺陷(附实例讲解)
人工智能·线性代数·算法
m0_571957582 小时前
Java | Leetcode Java题解之第450题删除二叉搜索树中的节点
java·leetcode·题解
大磊程序员(“hello world”)2 小时前
35.搜索插入位置
数据结构·算法·leetcode