力扣(LeetCode)给定一个非负整数数组,你最初位于数组的第一个位置。

2023-11-11

力扣(LeetCode)给定一个非负整数数组,你最初位于数组的第一个位置。

给定一个非负整数数组,你最初位于数组的第一个位置。
数组中的每个元素代表你在该位置可以跳跃的最大长度。
判断你是否能够到达最后一个位置。

示例 1:
输入: [2,3,1,1,4]
输出: true
解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。


示例 2:
输入: [3,2,1,0,4]
输出: false
解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度是 0 , 所以你永远不可能到达最后一个位置。

方法:倒序法

我们可以这样思考:
终点长度:k,其中k的初始值等于Array.count - 1(注意从下标0开始)

  • 倒序循环数组
  • 已经在最后一个位置的前一个位置pro:pro + array[pro] >= k的话,更新k的值,当前终点长度k = pro
  • 知道循环结束,最终判断:k == 0的话就返回true,否则返回false
//swift代码实现
func canJump(_ nums: [Int]) -> Bool {
    if nums.count <= 1 {
        return true
    }
    var k = nums.count - 1
    var pro = nums.count - 2
    while pro >= 0 {
        if nums[pro] + pro >= k {
            k = pro
        }
        pro = pro - 1
    }
    return k == 0 ? true : false
}

复杂度分析

时间复杂度:O(n),其中 n 为数组的大小。只需要访问 nums 数组一遍,共 n 个位置。
空间复杂度:O(1),不需要额外的空间开销。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

力扣(LeetCode)给定一个非负整数数组,你最初位于数组的第一个位置。 的相关文章

随机推荐

  • 为何pytorch nn.KLDivLoss()损失计算为负数?

    参考文献 https www zhihu com question 384982085 先来看一下KL散度的定义 这里是要用分布Q为标签 原始分布 分布P作为预测值 预测分布 在pytorch中 nn KLDivLoss 的计算公式如下 上
  • 《基于RCF边缘检测和双目视觉的箱体体积测量算法》论文阅读笔记

    原论文查看地址 https csnjiokh71 feishu cn file boxcnyF7HGMFDiWayf0vSTcYTec 1 双目畸变的原理分析 实际情况下 相机的主点 c x c y 并不位于图像中心 两者存在一定的偏差 而
  • 鹅厂内部干货

    欢迎大家前往腾讯云 社区 获取更多腾讯海量技术实践干货哦 作者介绍 陈阳 Younger 2011年加入腾讯 现就职于腾讯游戏增值服务部 负责AMS游戏营销平台 致力于研究和推动Web及大前端相关技术的发展 一 微信小游戏 H5小游戏及微信
  • “1448万,一条命”:在生命面前,金钱显得太刺眼

    1 前段时间 美国上市了一种治疗小儿脊髓性肌肉萎缩的药 引起了非常激烈的讨论 为什么会有这么大的争议呢 因为这种药特别贵 标价210万美元 人民币约1448万元 仅仅一支药 就相当于北京三环一套房 小儿脊髓性肌肉萎缩这个病到底有多恐怖呢 得
  • 利用bat,vb实现根据日期自动备份文件

    假如D backup a为备份源文件夹 备份路径为D backup 文件夹名为当天的日期 如D backup 2006 04 17 a 每周5备份一次 3周一个循环 即备份第4周时 第1周的备份删除 以减少空间 同时在D backup lo
  • 基于单片机的电子万年历设计与制作系统(设计报告+开题中期报告+仿真文件+程序)

    摘要 本文设计实现了一种基于单片机的电子万年历设计与制作系统 该系统通过单片机的控制 实现了日期 时间和节假日等信息的显示 同时提供了闹钟 定时器和温度显示等功能 实验结果表明 该系统具有较好的稳定性和实用性 能够满足人们对万年历功能的需求
  • kotlin语法总结(一)

    下一章地址 kotlin语法总结 二 文章目录 前言 前言 接下来几章将总结一下kotlin的语法 总结kotlin和java不一样的地方 1 var可修改 val只读 类型推断 const val a 1 编译时常量 2 kotlin只提
  • 假设检验之参数

    假设检验 p值的判断使用 很强很有用
  • Pytorch调用GPU的方法

    Pytorch调用GPU有两种方法 一种是torch cuda 一种是torch to torch cuda 通常会在配置文件中写入调用的GPU 默认不填参数为0 gpu 0 1 2 默认调用调用0号GPU network network
  • UVM 寄存器内建测试序列(built-in sequences)

    原文链接 https blog csdn net qq 42419590 article details 121487295 UVM 寄存器内建测试序列 built in sequences 不少有经验的UVM用户可能会忽略UVM针对寄存器
  • 电子设计大赛作品_竞赛来袭

    2020电子设计大赛 一年一度的电子设计大赛要来啦 想不想与同学好友一起打电赛 结识众多大佬 掌握各种专业知识 做出属于自己的作品 手捧奖状 让自己的大学简历更有含金量呢 那就和小电一起来看看吧 一 竞赛简介 全国大学生电子设计竞赛 以下简
  • HTMLTestRunner 加强版 HwTestReport 加入样式美化、中英文版本、Selenium和Appium截图、饼图等内容

    本项目源码已经进入Github的北极代码仓库 Arctic Code Vault 据说这些Bug Code 要冰封1000年 作为 HwTTK Test Tool Kit 中的一员 HwTestReport具有以下特性 支持Python2和
  • pycharm+python3.8安装opencv+contrib

    A opencv python与opencv contrib python的区别 1 opencv python包含opencv的主模块 下载地址 https pypi org project opencv python files 2 o
  • 评测指标(metrics)

    评测指标 metrics metric主要用来评测机器学习模型的好坏程度 不同的任务应该选择不同的评价指标 分类 回归和排序问题应该选择不同的评价函数 不同的问题应该不同对待 即使都是 分类问题也不应该唯评价函数论 不同问题不同分析 回归
  • Gin中的Cookie和Session的用法

    Gin中的Cookie和Session的用法 文章目录 Gin中的Cookie和Session的用法 介绍 Cookie 代码演示 Session 代码展示 介绍 cookie 和 session 是 Web 开发中常用的两种技术 主要用于
  • 【Logback】<appender>标签详解

    文章目录 一 Appender是什么 1 1 Appender定义 1 2 Appender类图说明 二 Appender概述 三 ConsoleAppender使用 四 FileAppender使用 4 1 FileAppender使用
  • 2024年王道数据结构【考研全套笔记】

    22年 23年数据结构大纲一致 24年大纲 gt 目前和23年大纲保持一致 该博客怎么食用 大部分考408的友友 只是买了书 书上配置的免费视频是滞后2年的 非常不友好 建议在某鱼上or大学慕课正规购买 还是最新的视频香 看完视频必须做笔记
  • 深入学习java源码之Byte.decode()与Byte.toUnsignedInt()

    深入学习java源码之Byte decode 与Byte toUnsignedInt 异常 异常就是有异于常态 和正常情况不一样 有错误出错 在java中 阻止当前方法或作用域的情况 称之为异常 其中Error类中包括虚拟机错误和线程死锁
  • SpringBoot本地磁盘映射

    出于安全性考虑 SpringBoot无法直接访问本地磁盘的文件 在某些应用场景下 需要访问例如本地的图片等一些内容 这时候 我们可以通过创建一个虚拟路径来指向本地磁盘文件 重写WEB配置类 添加新的静态资源路径配置 代码如下 Configu
  • 力扣(LeetCode)给定一个非负整数数组,你最初位于数组的第一个位置。

    力扣 LeetCode 给定一个非负整数数组 你最初位于数组的第一个位置 给定一个非负整数数组 你最初位于数组的第一个位置 数组中的每个元素代表你在该位置可以跳跃的最大长度 判断你是否能够到达最后一个位置 示例 1 输入 2 3 1 1 4