leetcode 55. 跳跃游戏

2023-11-01

一、题意

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

二、解法

贪心算法。
解法1:
计算出 i + n u m s [ i ] i+nums[i] i+nums[i]或目前最大值是否能到下个位置,如果能,则继续,不能则返回false。
解法2(官方):
计算出能到达最右的位置rightmost,如果当前坐标 ≤ \leq rightmost, r i g h t m o s t = m a x ( r i g h t m o s t , n u m s [ i ] + i ) rightmost=max(rightmost,nums[i]+i) rightmost=max(rightmost,nums[i]+i), 判断rightmost是否大于最大数值下标,若是,则返回true。

三、代码

解法一:

bool canJump(vector<int>& nums) {
            int maxN = 0;
            int n = nums.size()-1;
            for(int i=0;i<nums.size()-1;i++){
                int s = nums[i]+i;
                    if(s<i+1&&maxN<i+1){
                        return false;
                    }
                    maxN= max(s,maxN);
            }
            return true;
    }

解法二:

 bool canJump(vector<int>& nums) {
            int maxN = 0;
            int n = nums.size();
            for(int i=0;i<nums.size();i++){
                    if(i<=maxN){
                        int s = nums[i]+i;
                        maxN = max(s,maxN);
                        if(maxN>=n-1) return true;
                    }
            }
            return false;
    }

四、引用

[1] leetcode:55. 跳跃游戏
[2] leetcode:跳跃游戏官方解法

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

leetcode 55. 跳跃游戏 的相关文章

  • atheros面试

    6道题目 1 是swap的宏的定义 2 用一个语句判断一个数是不是2的n次幂 3 判断sizeof作为参数传入的 char 的长度 4 用两个栈实现一个队列 5 将字符串bcde转换为edcb 6 循环计数1 n 如果计到m 则打印出来 第

随机推荐

  • Impala 三大组件:Impala Daemon, Impala Statestore, Impala Catelog

    Impala 三大组件 Impala Daemon 功能 负责读写数据文件 接受来自 Impala shell ODBC Hue 和 JDBC 的查询请求 然后与集群中的其他节点分布式并行工作 将本节点的查询结果返回给中心协调者节点 查询流
  • 创建项目Vue 3 + Vite,引入 Element Plus UI 组件库。

    首先要下载vite 在终端输入npm init vitejs app my vue app template vue 快速生成一个使用 Vite 构建的 Vue 3 项目模版 这时候如果是第一次创建 电脑就会提示 只用输入y 电脑即可自动下
  • 高通9008刷机

    1 进入9008模式 第一种方法 adb reboot edl 第二种方法 手机按钮进入 第三种方法 小米安全通线 第四种方法 短路接点 2 需要安装安卓驱动 高通驱动 QFIL软件 3 需要下载ROM包 4 解压ROM包 5 打开QFIL
  • 毕业季

    进入六月 毕业的氛围越来越浓 虽然忙 但更多的是不舍 四年 转眼之间 大一在高密校区的岁月仍历历在目 6 10 从公司请假 早上八点半去图书馆布置创新比赛的展板 6 11 休整一天 PPT准备6 12号早上的答辩 6 12 早八点半 在中德
  • 欧科云链让科技赋能乡村教育,获公益时报等主流媒体报道...

    中国经济网 公益时报前线报道 近日 欧科云链CSR团队到访饶河县饶河农场中心小学 为该校的人工智能创客实验室注入了新的活力 这一举措旨在助力学校推进人工智能教育 为农村学生提供更广阔的发展机会 饶河农场中心小学一直以来致力于创新教育 自20
  • nested exception is org.apache.ibatis.builder.BuilderException: Error evaluating expression 的解决办法

    问题概述 在基于微服务架构风格的项目开发过程中 为了提高快速开发的目的 提高开发效率 集成了 MyBatisPlus 对于 MyBatisPlus 封装的 CRUD API 接口已经非常强大了 但是有时还是需要使用其动态 SQL 的拼接 在
  • 性能测试之性能优化篇

    目录 为什么进行性能测试 性能测试的目的 服务性能优化的思考 衡量系统性能常用的指标 系统性能计数器 性能测试分类 如何合理的规划我们的架构性能 最后拿数据说话 性能优化原则 性能优化的方法 性能优化的分层思想 所有的优化都会对系统性能产生
  • flask 文件 服务器,flask服务器文件上传云

    flask服务器文件上传云 内容精选 换一换 弹性云服务器支持通过内网访问OBS OBS可供用户存储任意类型的数据 将图片 视频等数据存储至OBS后 在ECS上可以访问OBS 下载桶中的图片或视频等数据 通过内网访问OBS 可以避免因网络不
  • ASP.NET中JSON的序列化和反序列化

    在项目开发过程中 发现需要用到JSON序列化 反序列化的问题 所有 在网上找到了一下这篇文章 摘录了下来 摘自 http www cnblogs com zhaozhan archive 2011 01 09 1931340 html JS
  • 使用ijkplayer播放4k视频卡顿的解决方法

    使用ijkplayer播放4k视频卡顿的解决方法 使用硬解码 ijkMediaPlayer setOption IjkMediaPlayer OPT CATEGORY PLAYER mediacodec 1
  • PAT甲级1135

    红黑树的特点 1 根节点是黑色 2 如果一个节点是红色那么他的两个子节点都是红色 3 任意从根节点到叶子结点的路径上 所有的路径经过的黑色节点数相同 4 红黑树是二叉搜索树 算法 1 根节点是否为黑色 2 红色节点的两个子节点是不是都是黑色
  • JS 数组或对象的遍历(for、for...in、for...of、foreach)

    转载自 JavaScript 比较for for in for of forEach的区别 非早起选手的博客 CSDN博客 目录 一 for 二 for in 三 for of 四 forEach 五 小结 一 for 最原始的方法 用来遍
  • 【在线教育】- 前端环境搭建&讲师CURD前端实现

    在线教育 一 在线教育前端环境搭建 1 1 vue element admin 概述 1 2 vue element admin master安装 1 3 vue element template介绍 了解 1 4 vue element
  • 牛客面试高频算法题js(输出二叉树的右视图、岛屿数量、矩阵的最小路径和、字符串出现次数的TopK问题、二叉树根节点到叶子节点的所有路径和)

    NC136 输出二叉树的右视图 描述 请根据二叉树的前序遍历 中序遍历恢复二叉树 并打印出二叉树的右视图 数据范围 0 le n le 100000 n 10000 要求 空间复杂度 O n O n 时间复杂度 O n O n 如输入 1
  • html跳转页面到自己写的另一个页面,非js

    最简单的跳转页面 记录给渣渣的自己 很low的两个html界面1和2 在1页面上设置一个button 按下按钮 跳转至自己写的2界面 代码如下 div class wrapper div class container h1 Welcome
  • Sqli-labs 15-19

    15关 在输入框内测试Username asd Password 123并点击提交后发现并没有什么卵用 在Username处尝试万能钥匙1 or 1 1 发现成功登录了 接下来看源码分析问题 由于红下划线处的username uname 所
  • 移动app开发如何做接口的版本控制

    移动app为什么要做版本控制 应用升级无法做到全部升级 比如某应用现行1 1版本 某次开发升级后 版本变为1 2 除app界面变化外 后台接口也发生了变化 然而不是所有的用户都在第一时间升级了app 或者由于版本推送不及时 用户忽略更新等原
  • 2020浙江大学软件学院预推免经验

    个人背景 本人为末流211计算机科学与技术专业 且专业排名于保研名额末尾 但是综合排名在中上肯定有保研资格 本科学校最后是以综合排名上报学信网的 而预推免和夏令营对方学校对看的一般是专业排名 预推免报名时本科学校已经出了推免名单了 所以预推
  • Datadog 能成为最大的云监控厂商吗

    Datadog 原本是一家名不见经传的云监控公司 于 2019年9月19日 登陆纳斯达克 上市首日即突破 80亿 美金 上市前还搞了个小插曲 思科在 IPO 前夕提出 70亿美元 全面收购要约 被 Datadog 董事会断然拒绝 时至今日
  • leetcode 55. 跳跃游戏

    一 题意 给定一个非负整数数组 nums 你最初位于数组的第一个下标 数组中的每个元素代表你在该位置可以跳跃的最大长度 判断你是否能够到达最后一个下标 二 解法 贪心算法 解法1 计算出 i n u m s