牛客网. 跳跃游戏-II

2023-05-16

题目概述

解题思路

我开始想到的做法是贪心。首先维护两个指针icuri用于顺序遍历,cur用来指向上一次可以跳到的最远的位置。维护一个一维数组,用来记录跳到每个位置需要的最短步数。然后考虑当前能跳到的最远距离是否超过了cur,如果超过,就把cur+1~i+A[i]这些位置的值都置为dp[i]+1;否则就不操作。我们可以保证dp[i]的值就是跳到每个位置所需最短步数,因为当dp[i]被赋值的时候,这个值被第一次访问,之后如果还有别的方法能访问到该值,其步数也必定不少于第一次访问。这个做法的时空复杂度均为O(n)。

考虑这道题的特殊性:跳跃的步数是从1~A[i]连续的,而不是只有A[i]这一个值,因此我们其实只需要维护一个变量,记录当前所能跳到的最远位置即可。如果当前可以跳到超过数组长度的位置,那么必定能跳到数组的末端位置。这样空间复杂度就变为O(1)啦。

方法性能

示例代码

时空复杂度O(n)版:

class Solution {
public:
    /**
     * 
     * @param A int整型一维数组 
     * @param n int A数组长度
     * @return int整型
     */
    int jump(int* A, int n) 
    {
        // write code here
        int *dp = new int[n];
        memset(dp, 0, sizeof(int) * n);
        
        int cur = 0;
        for(int i = 0; i < n;++i)
        {
            if(i + A[i] > cur)
            {
                for(int j = min(i + A[i], n-1); j > cur;--j)
                    dp[j] = dp[i] + 1;
                cur = i + A[i];
                if(cur >= n)
                    break;
            }
        }
        
        return dp[n-1];
    }
};

 

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

牛客网. 跳跃游戏-II 的相关文章

  • 网站项目通过ip地址访问而不通过localhost访问的配置方法

    1 到E AppServ Apache2 2 conf xff08 apache的安装地址中 xff0c 可能不相同 xff09 xff0c 找到httpd conf文件 再打开该文件 xff0c 找到里面的 xff1a Listen 19
  • Java中判断String不为空的问题

    一 判断一个字符串str不为空的方法有 xff1a 1 str 61 null 2 34 34 equals str 3 str length 61 0 注意 xff1a length是属性 xff0c 一般集合类对象拥有的属性 xff0c
  • java中String值为空字符串与null的判断方法

    Java空字符串与null的区别 1 类型 null表示的是一个对象的值 xff0c 而不是一个字符串 例如声明一个对象的引用 xff0c String a 61 null 表示的是一个空字符串 xff0c 也就是说它的长度为0 例如声明一
  • RouterOS 6.48.6 安装与配置

    手头刚好有台旧的Dell服务器 xff0c 板载两个网口 xff0c 后来又扩展了一个4网口的网卡这样就有了六个网口 xff0c 用它安装RouterOS xff0c 来实现NTH多线路带宽叠加 xff0c 以及来做PCC负载均衡的实验就足
  • java.lang.IllegalStateException Unable to find a @SpringBootConfiguration错误解决方案(亲测)

    问题描述 java lang IllegalStateException Unable to find a 64 SpringBootConfiguration you need to use 64 ContextConfiguration
  • 迅雷出现应版权方要求,无法下载的解决办法

    最近在电影天堂下电影 xff0c 特别是热播的一些电视剧 xff0c 用迅雷下载总是提示应版权方要求 xff0c 无法下载 VIP会员都没用 xff0c 没办法 xff0c 用浏览器下载吧 xff0c 总是连不上FTP服务器 xff0c 网
  • Uncaught TypeError: Cannot set property ‘0‘ of undefined

    因为用java用的比较习惯了 xff0c 在js使用二维数组的时候也想当然的直接就如 var arraydata arraydata 0 61 data list 0 结果问题随之而来 xff0c 报错 xff1a Uncaught Typ
  • Ubuntu通过修改配置文件进行网络配置

    Ubuntu系统进行网络配置有的时候用图形界面不起作用 xff0c 这种情况下可以直接修改某些启动脚本或配置文件 Ubuntu系统进行网络配置涉及到几个配置文件 1 etc network interfaces 2 etc resolv c
  • vscode常用的9个插件,推荐给你们

    1 Settings Sync 开发必备神器之一 xff01 可以帮助你在不同的设备之间同步vscode所有的配置 插件 xff01 xff01 虽然配置有好几个步骤 xff0c 但是一旦配置好了之后使用非常的方便 xff0c 只需要记住快
  • 在Windows10上安装WSL子系统

    目录 一 安装WSL2 0 二 安装Ubuntu20 04LTS 三 配置ssh 四 设置分发版本 五 常见问题解决 5 1 安装失败并出现错误 0x80070003 5 2 WslRegisterDistribution 失败并出现错误
  • 安装mysql5.7后无法启动,/var/run/mysqld 目录每次重启后都需要手动去创建

    mysql5 7安装后出现无法启动 xff0c 建立 var run mysqld 并赋权mysql用户解决了启动的问题 xff0c 但是重启系统后又出现无法启动的问题 xff0c 导致 var run mysqld 目录每次重启后都需要手
  • Git使用教程

    1 版本控制 1 1 简介 版本控制 Revision control 是一种在开发的过程中用于 管理我们对文件 目录或工程等内容的修改历史 方便查看更改历史记录 备份以便恢复以前的版本的软件工程技术 实现跨区域多人协同开发 追踪和记载 个
  • [leetcode]解码方法(Decode Ways)

    解码方法 xff08 Decode Ways xff09 一条包含字母 A Z 的消息通过以下方式进行了编码 xff1a 39 A 39 gt 1 39 B 39 gt 2 39 Z 39 gt 26 给定一个只包含数字的非空字符串 xff
  • C#调用FluentFTP将文件批量上传到ftp服务器

    上篇文章介绍了在Windows Server 2008上搭建FTP服务 xff0c 本文测试使用C 调用FluentFTP将文件批量上传到ftp服务器 FluentFTP是由C 开发的开源FTP和FTPS库 xff0c 其开源地址见参考文献
  • RouterOS 通过NTH/PCC设置多线负载均衡及带宽叠加

    关于NTH的相关原理 xff0c 请大家移步RouterOS Nth与Passthrough 务必要多看几遍 xff0c 彻底把原理看明白了 xff0c 然后再上机实验就能收到事半功倍的效果 如果大家原理不明白 xff0c 仅靠看别人的文档
  • Windows及Ubuntu下安装PyCharm

    之前编写Python程序 xff0c 在Windows下面主要使用的记事本或者Python自带的IDLE工具 xff0c Ubuntu下主要是在VSCode中编写 xff0c 编写或调试程序都比较麻烦 xff0c 百度了一下 xff0c 目
  • android app 设置以太网静态Ip

    写文目的 公司是做工控和楼宇智能方面产品 xff0c 使用的设备有rk和全志平台 xff0c 运行的是android操作系统 xff0c 部分场景需要设置有线网络的静态Ip 所以针对这一需求做了如下工作 xff0c 并以此文作为总结 遇到的
  • python神经网络案例——CNN卷积神经网络实现mnist手写体识别

    转自 xff1a https blog csdn net luanpeng825485697 article details 79088938 全栈工程师开发手册 xff08 作者 xff1a 栾鹏 xff09 python教程全解 CNN
  • Java删除字符串中的指定字符

    Java删除字符串中的指定字符有以下两种方法 xff1a 1 替换函数 xff0c 替换成空白 String test 61 chaojimali test 61 test replace chaoji 2 截取函数 xff0c 删除字符
  • Spring MVC 异常,怎样显示比较友好?

    本文基于Spring MVC 注解 xff0c 让Spring跑起来 实施过程中完全没有任何异常 xff0c 测试过程中也没出错 xff0c 偏偏在客户试用过程中报错了 报错了 xff0c 怎样给客户友好界面 xff1f 两个方法 xff1

随机推荐

  • Android进程的内存管理分析

    尊重原创作者 xff0c 转载请注明出处 xff1a http blog csdn net gemmem article details 8920039 最近在网上看了不少Android内存管理方面的博文 xff0c 但是文章大多都是就单个
  • 简单了解5G

    什么是5G 一 5G的特点 xff1a 二 5G的8个关键技术指标 xff08 与4G作对比 xff09 三 5G的几个关键技术 一 动态自组织网络 xff08 SON xff09 xff08 二 xff09 软件定义网络 xff08 SD
  • MSTP、LACP、VRRP、DHCP、NAT综合实验技术文档

    MSTP LACP VRRP DHCP NAT综合实验技术文档 要求 xff1a 要求按照拓扑图配置MSTP VRRP DHCP NAT等相关命令使得图中所有终端能够网络互通 1 MSTP 43 链路聚合 正常情况下各VLAN流量路径要求如
  • 解决共享文件时出现 “mount error(13): Permission denied” 错误

    当在Windows 系统和 Linux 系统之间共享文件时出现如下的错误 xff1a root 64 localhost mount cifs 192 168 226 1 kugou data Password for root 64 19
  • shell 脚本汇总 (持续更新中)

    文章目录 1 计算从1到100所有整数的和2 提示用户输入一个小于100的整数 xff0c 并计算从1到该数之间所有整数的和3 求从1到100所有整数的偶数和 奇数和4 写个逛淘宝选购商品脚本 xff0c 每家商店有五种商品选购 xff08
  • RouterOS 重置密码

    如果RouterOS的密码忘记了 xff0c 大家不必惊慌 xff0c 本文就以Routeros 6 48 6为例给大家讲解一下X86平台下RouterOS的密码重置 xff0c 其实X86平台下各版本的重置步骤大致相同 都是找到user
  • Nginx+Tomcat 实现负载均衡、动静分离群集配置

    文章目录 一 Nginx 负载均衡实现原理二 Nginx 动静分离实现原理三 Nginx 43 Tomcat 动静分离 负载均衡配置步骤1 部署 Nginx 负载均衡服务器2 部署两台 Tomcat 应用服务器3 动静分离配置 一 Ngin
  • MySQL主从复制与读写分离报错与解决方案

    文章目录 报错一 xff1a java 的3306端口找不到报错二 xff1a 端口次数出现太多报错三 xff1a 在客户机中远程连接 amoeba服务器 代理访问mysql 时 xff0c 连接不上amoeba 当我在部署MySQL主从复
  • 超实用的ELK日志分析系统

    文章目录 前言 xff1a 一 ELK日志分析系统简介 xff08 一 xff09 日志服务器 xff08 二 xff09 ELK日志分析系统补充 xff1a xff08 三 xff09 日志处理步骤 xff08 四 xff09 Elast
  • 实用!!Openstack一键部署步骤

    文章目录 一 环境需求二 环境配置1 配置静态地址 主机名2 关闭 xff08 设置开机不启动 xff09 防火墙 核心防护 NetworkManager3 安装时间同步服务 同步阿里云时钟服务器 xff08 ntp1 ntp2 设置周期性
  • 自动化运维 ansible角色管理

    文章目录 一 Templates模块1 获取模板2 定义变量3 传入变量4 编写剧本 二 tags 模块1 编写tags标签剧本2 编写always标签剧本 三 role模块 xff08 一 xff09 roles内各目录含义解释 xff1
  • K8S之配置管理

    文章目录 一 Secret方式一 xff1a 方式二 xff1a 第一种 xff1a 使用secret中的变量导入到pod中第二种 xff1a 以volume的形式挂载到pod的某个目录下 二 ConfigMap创建方式一 xff1a ku
  • K8S之安全机制(角色授权)

    文章目录 一 安全机制 xff08 一 xff09 Service Account详解 xff08 二 xff09 apiserver使用的是token认证 二 第一模块 xff1a 认证 xff08 一 xff09 https证书认证 x
  • 使用kubeadm搭建K8S

    文章目录 一 环境准备二 master部署三 node节点 一 环境准备 master 192 168 195 180 node01 192 168 195 181 node02 192 168 195 182 1 xff1a 在所有节点上
  • winsock connect socket连接,报10061错误

    问题现象 xff1a 上位机去创建socket连接 xff0c 报10061错误 问题分析 xff1a 10061是server 拒绝了client的request xff0c 主要原因是a misconfigured server xff
  • 【踩坑专栏】lombok报错程序包org.slf4j不存在

    问题描述 xff1a 在Pom中引入了依赖 xff0c idea中也有lombok的插件 xff0c 之前使用lombok的 64 Slf4j注解没有问题 xff0c 最近在某一个项目中 xff0c 在编译时突然报错程序包org slf4j
  • Ubuntu1804_server 离线安装GCC_7.5

    本文利用一个比较简单方便的方法为Ubuntu1804 server的服务器离线安装GCC 7 5 之前写过一篇关于离线安装软件的文章 xff0c 有兴趣的同学请移步Ubuntu18 04 离线安装nginx 可是如果生产服务器有大量需要离线
  • 关于Java之IO流音乐拼接小项目

    需求 xff1a 做一个音乐串烧 分析 xff1a 1 有n个音乐 xff0c 找到高潮部分 xff0c 2 获取高潮部分的流对象 3 把这部分对象保存成一个mp3 4 把它们拼接起来 以下为源码供大家分享 xff1a 方法一 xff1a
  • 192.168.和10.0.开头的IP、内网IP段、IP简介、分类

    IP地址分为五大类 xff1a A类 B类 C类 D类和E类 xff0c 如下图所示 xff1a 在这五类IP地址中 xff0c 我们最常使用的是A类 B类和C类地址 在这三类地址中 xff0c 绝大多数的IP地址都是公有地址 xff0c
  • 牛客网. 跳跃游戏-II

    题目概述 解题思路 我开始想到的做法是贪心 首先维护两个指针i和cur xff0c i用于顺序遍历 xff0c cur用来指向上一次可以跳到的最远的位置 维护一个一维数组 xff0c 用来记录跳到每个位置需要的最短步数 然后考虑当前能跳到的