当前位置: 首页 > article >正文

LeetCode[中等] 55.跳跃游戏

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

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

思路 贪心算法

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

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


http://www.kler.cn/news/328784.html

相关文章:

  • Android 13.0 系统wifi列表显示已连接但无法访问网络问题解决
  • 使用 PHP 的 strip_tags函数保护您的应用安全
  • UE5.4.3 Replay 重播回放系统
  • [Mysql]锁总结
  • C++中,如何使你设计的迭代器被标准算法库所支持。
  • k8s的控制节点不能访问node节点容器的ip地址
  • Scrapy入门
  • 深度学习 Transformer 的标签平滑(Label Smoothing)
  • 计算机视觉小目标检测模型
  • 【Golang】深入解读Go语言中的错误(error)与异常(panic)
  • Base64编码避坑指南
  • Skip、Compose、Flutter和RN
  • 面试金典题3.2
  • 在C语言中,符号有两个主要用途:
  • Rainbond 助力城建智控,从传统开发到敏捷开发转型
  • 算法必学之LRU
  • Gson将对象转换为JSON(学习笔记)
  • 【C++高阶】深入理解C++智能指针:掌握RAII与内存安全的利器
  • 南沙C++信奥赛陈老师解一本通题 2005:【20CSPJ普及组】直播获奖
  • Vue3.X + SpringBoot小程序 | AI大模型项目 | 饮食陪伴官
  • Python知识点:如何使用AWS Greengrass与Python进行边缘计算
  • 64 注意力机制_by《李沐:动手学深度学习v2》pytorch版
  • 【计网】从零开始学习http协议 --- http的请求与应答
  • Stable Diffusion绘画 | 来训练属于自己的模型:素材准备篇
  • 【AI知识点】嵌入向量(Embedding Vector)
  • 明达技术工业级边缘计算网关:智能制造的智慧纽带
  • Docker安装consul + go使用consul + consul知识
  • WaterCloud:一套基于.NET 8.0 + LayUI的快速开发框架,完全开源免费!
  • 墙绘艺术在线市场:SpringBoot实现指南
  • 基于微信小程序爱心领养小程序设计与实现(源码+参考文档+定制开发)