14.跳跃游戏Ⅱ

文章目录

  • 题目简介
  • 题目解答
    • 解法一:贪心算法+动态规划
      • 代码:
      • 复杂度分析:
  • 题目链接

大家好,我是晓星航。今天为大家带来的是 跳跃游戏Ⅱ 相关的讲解!😀

题目简介

在这里插入图片描述

题目解答

解法一:贪心算法+动态规划

思路:想象你在玩大富翁,回合制游戏,随身带的钱决定你每回合最多可以走多少格,需要以最短的回合数到达终点。 格子里面的数字代表“钱”,每回合你需要停留在格子里休息得到补充的“钱”才能继续行走。 每次走到一个格子的时候,你需要估计预算在下一个回合能走多少格,哪个格子的钱最多,下一回合就去那个格子 。但是前面的格子里有多少钱有战争迷雾看不到,要到了才知道。 border 指本回合能走的最远位置,即钱用完了就不能继续往前了 maxPosition 就是钱
在这里插入图片描述

代码:

class Solution {
    public int jump(int[] nums) {
        // 记录当前能跳跃到的位置的边界下标
        int border = 0;
        // 记录在边界范围内,能跳跃的最远位置的下标
        int maxPosition = 0;
        // 记录所用步数
        int steps = 0;
        for(int i=0;i<nums.length-1;i++){
            // 继续往下遍历,统计边界范围内,哪一格能跳得更远,每走一步就更新一次能跳跃的最远位置下标
            // 其实就是在统计下一步的最优情况
            maxPosition = Math.max(maxPosition,nums[i]+i);
            // 如果到达了边界,那么一定要跳了,下一跳的边界下标就是之前统计的最优情况maxPosition,并且步数加1
            if(i==border){
                border = maxPosition;
                steps++;
            }
        }
        return steps;
    }
}

代码注释很好的解释了每一行代码是干嘛的,看不懂的可以参考注释。

复杂度分析:

  • 时间复杂度:O(n),其中 n 是数组长度。
  • 空间复杂度:O(1)。

题目链接

45. 跳跃游戏 II
感谢各位读者的阅读,本文章有任何错误都可以在评论区发表你们的意见,我会对文章进行改正的。如果本文章对你有帮助请动一动你们敏捷的小手点一点赞,你的每一次鼓励都是作者创作的动力哦!😘

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/613596.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

el-select下拉框 添加 el-checkbox 多选框,支持全选、取消全选

el-select下拉框 添加 el-checkbox 多选框&#xff0c;支持全选、取消全选 前言一、实现思路二、实现代码1.模板代码2. css 样式3.js 代码 DEMO 演示总结 前言 实现效果预览 提示&#xff1a;本内容基于element-ui 组件实现&#xff0c;如果使用其他组件库、可参考下面实现方…

QML 本地存储(Setting,sqlite)

Qt hello - 专注于Qt的技术分享平台 QML 原生的储存方有两种&#xff1a; 1&#xff0c;Settings 跟QWidget 中的QSettings 一样&#xff0c;可以简单的存储一些配置。 2&#xff0c;Sqlite sqlite数据库。可以存储一些复杂的数据。 一&#xff0c;Settings 我们以一个按钮的位…

ROS2 conda 环境下报 No module named ‘catkin_pkg‘

这里使用的环境是&#xff1a;Ubuntu 22.04, ROS2, Conda python 虚拟环境是3.10 ~/.bashrc 里注释掉 conda&#xff0c;并添加 export PYTHONPATH$PYTHONPATH:/usr/lib/python3/dist-packages sudo gedit ~/.bashrc source ~/.bashrc

算法day04

第一题 &#xff1a; 209. 长度最小的子数组 有上题可知&#xff0c;我们会采用双指针和单调性的思路来解决 我们本题采用左右双指针从数组的0位置同向前进&#xff0c;所以将此类模型称为滑块&#xff1b; 步骤思路如下&#xff1a; 步骤一&#xff1a; 定义所有双指针都指向…

时间选择框选择月份后生成选择月份的第一天以及下一个月份的第一天

const onChange e > {const date e ? new Date(e.$d) : new Date()// 获取年份和月份const year date.getFullYear()let month date.getMonth() 1// 格式化月份&#xff0c;确保为两位数字month month < 9 ? 0 month : month// 计算结束年份和月份const endMont…

泥水位监测站的应用场景

TH-SW2泥水位监测站的应用场景相当广泛&#xff0c;包括但不限于以下几种情况&#xff1a; 水源地保护&#xff1a;它可以监测水源地的水质及水位变化&#xff0c;为水源地的保护提供实时数据支持&#xff0c;防止水源污染和过度开采。水库管理&#xff1a;在水库中&#xff0…

从诊室到云端:医疗大模型的应用挑战与未来探索

从诊室到云端&#xff1a;医疗大模型的应用挑战与未来探索 2023年是中国医疗大模型发展的元年&#xff0c;各种医疗大模型已广泛应用于临床辅助决策、医学研究、健康管理等多个场景。未来&#xff0c;医疗大模型有望实现多模态AI与医疗实践全流程的深入链接&#xff0c;应用于医…

【MySQL 数据宝典】【事务锁】- 002 事务控制的演进

一、事务处理思路 1.1 排队 排队处理是事务管理最简单的方法&#xff0c;就是完全顺序执行所有事务的数据库操作&#xff0c;不需要加锁&#xff0c;简单的说就是全局排队。序列化执行所有的事务单元&#xff0c;数据库某个时刻只处理一个事务操作&#xff0c;特点是强一致性…

xhci 寄存器学习

xhci 寄存器介绍 查看linux 代码&#xff1a; 1733 /* There is one xhci_hcd structure per controller */ 1734 struct xhci_hcd { 1735 struct usb_hcd *main_hcd; 1736 struct usb_hcd *shared_hcd; 1737 /* glue to PCI and HCD framework */ 1738 stru…

为你的音视频创作提供助力,好莱坞电影专业音效素材全集

一、素材描述 本套好莱坞电影音效素材全集&#xff0c;来自欧美等国专业音频制作公司和好莱坞电影制作机构多年创作积累的音效库&#xff0c;经过专家精选并配以中文解释&#xff0c;分享给广大业内人士和业余爱好者使用&#xff0c;不失为难得的专业音效素材&#xff0c;为你…

2024年4月国产数据库大事记-墨天轮

本文为墨天轮社区整理的2024年4月国产数据库大事件和重要产品发布消息。 目录 2024年4月国产数据库大事记 TOP102024年4月国产数据库大事记&#xff08;时间线&#xff09;产品/版本发布兼容认证代表厂商大事记排行榜新增数据库厂商活动相关资料 2024年4月国产数据库大事记 …

Vue3的CRUD模版(附Demo)

目录 前言模版 前言 用惯Vue2之后&#xff0c;在碰Vue3后&#xff0c;整体还是有所区别 此文主要做一个回顾总结 假设界面如下&#xff1a; 可CRUD&#xff0c;对应的新增 添加一些必选项&#xff1a; 其中数据库的设计如下&#xff1a; 模版 对应需要注意参数位置、初始…

Python 全栈系列243 S2S flask_celery

说明 按现有的几个架构部件&#xff0c;构建数据流。 S Redis Stream。这个可以作为缓冲队列和简单任务队列&#xff0c;速度非常快&#xff0c;至少是万条/秒的速度。 Q RabbitMQ。这个作为任务队列&#xff0c;消息也主要是元数据。读速比较慢&#xff0c;但有一些特性&a…

【激活函数--中】激活函数和阶跃函数的可视化及对比

文章目录 一、Python中绘制阶跃函数的图形二、实现和可视化Sigmoid函数2.1 Python实现2.2 可视化Sigmoid函数 三、比较Sigmoid函数与阶跃函数3.1 Sigmoid函数与阶跃函数的差异3.2 Sigmoid函数与阶跃函数的共同点 一、Python中绘制阶跃函数的图形 在Python中实现阶跃函数的代码…

智能AI个人名片小程序源码系统 带完整的安装代码包以及搭建部署教程

在当今数字化时代&#xff0c;个人名片不再仅仅是一张简单的纸质卡片&#xff0c;而是演变成了一种更加智能、便捷的数字化工具。为了满足这一需求&#xff0c;小编给大家分享一款智能AI个人名片小程序源码系统&#xff0c;该系统不仅提供了完整的安装代码包&#xff0c;还附带…

(41)5.6-5.8数据结构(栈和队列的应用和数组)

1.栈在括号匹配中的应用 #define _CRT_SECURE_NO_WARNINGS #define MaxSize 10 typedef struct { char data[MaxSize];//静态数组存放栈中元素 int top; //栈顶指针 }SqStack;//初始化栈 void InitStack(SqStack& S);//判断栈是否为空 bool StackEmpty(SqStack S…

轮式机器人简介

迄今为止,轮子一般是移动机器人学和人造交通车辆中最流行的运动机构。它可达到很高的效率, 如图所示, 而且用比较简单的机械就可实现它的制作。 另外,在轮式机器人设计中,平衡通常不是一个研究问题。 因为在所有时间里,轮式机器人一般都被设计成在任何时间里所有轮子均与地接…

vue3父子组件相互调用方法详解

&#x1f49f; 上一篇文章 Vue2中父子组件互相传值和方法调用 &#x1f4dd; 系列专栏 vue从基础到起飞 目录 1、前言 2、子组件调用父组件方法&#xff08;setup组合式&#xff09; 2.1 父组件Father.vue 2.2 子组件Child.vue 3、父组件调用子组件方法&#xff08;setup组…

每天五分钟计算机视觉:使用极大值抑制来寻找最优的目标检测对象

本文重点 在目标检测领域,当模型预测出多个候选框(bounding boxes)时,我们需要一种方法来确定哪些候选框最有可能表示真实的目标。由于模型的不完美性和图像中目标的重叠性,往往会有多个候选框对应于同一个目标。此时,极大值抑制(Non-Maximum Suppression,NMS)技术就…

租用香港Windows服务器要注意的几种安全防护措施

在网络世界里&#xff0c;永远没有绝对的安全&#xff0c;但我们可以通过采取适当的措施使风险降低。对于选择香港Windows服务器租赁的企业和个人来说&#xff0c;保护数据的安全性与隐私至关重要。下面将介绍几种关键的租用香港Windows服务器时应注意的安全防护措施。 1.使用本…