跳跃游戏类题目 总结篇
一.跳跃游戏类题目简单介绍
跳跃游戏是一种典型的算法题目,经常是给定一数组arr,从数组的某一位置i出发,根据一定的跳跃规则,比如从i位置能跳arr[i]步,或者小于arr[i]步,或者固定步数,直到到达某一位置,可能是数组的最后一个位置,也有可能是某一特别的数值处,也有可能在这个过程中,可能需要求解可能存在的最大值或者最小值。
对于跳跃游戏类的题目,经常使用贪心、动态规划、dfs、bfs等方法解决,对于可以使用dfs解决的题目,经常也可以使用动态规划,但一般贪心可以有更好的时间复杂度和空间复杂度。还有经常使用的动态规划剪枝、前缀和、滑动窗口和BFS,由于在大部分情况下,能用DFS解决的题目都可以用BFS解决,且两种方法有基本相同的复杂度,尤其是在跳跃游戏这类题目中,可以视为一种方法。
二.跳跃游戏类经典题目
在leetcode上有关于跳跃游戏类的题目主要分为两大类,一个就是跳跃游戏,另外一个是跳跃游戏的衍生,比如青蛙酱和跳骚,又或者是其他小动物,比较经典的题目有:
(1)leetcode70 爬楼梯
(2)leetcode剑指 Offer 10- II. 青蛙跳台阶问题
(3)剑指 Offer II 088. 爬楼梯的最少成本
(4) leetcode55 跳跃游戏
(5)leetcode45 跳跃游戏 II
(6) leetcode1306 跳跃游戏 III
(7)leetcode1696 跳跃游戏 VI
(8)leetcode1871 跳跃游戏 VII
(9)leetcode1413 逐步求和得到正数的最小值
(10)leetcode 403 青蛙过河
以上题目都在前三篇中出现过,具体的题解不再赘述,可参考:
跳跃游戏 (贪心/动态规划/dfs)_跳跃游戏动态规划_ForwardSummer的博客-CSDN博客
跳跃游戏 (动态规划剪枝/前缀和/滑动窗口/BFS剪枝)_ForwardSummer的博客-CSDN博客
跳跃游戏 (DFS->记忆化搜索->动态规划/贪心证明)_ForwardSummer的博客-CSDN博客
那么还有一些其他的跳跃游戏类的题目,可以进行尝试:
(1)LCP 09 最小跳跃次数
(2)1345 跳跃游戏 IV
(3)1340 跳跃游戏 V
(4)1654 到家的最少跳跃次数
(5)975 奇偶跳
三.跳跃游戏类题目 解题方法与技巧
在整体上,跳跃游戏的题目基本都可以使用DFS解决,如果在时间复杂度上不能满足要求,那么加上一个记忆化搜索基本可以解决大部分的题目,另外还可以进行剪枝,在DFS和BFS和动态规划时也经常使用。对于有些题目,动态规划反而要比DFS、BFS的方法好理解,当明白状态的转移后,不用再去具体怎么走,边界条件如何,反而更容易。
对于可以使用动态规划解决的题目,都可以使用DFS来做,如果在刚开始不能够很好的推出状态方程,不像 leetcode70 爬楼梯 这种可以一眼看出状态转移规律的,还是建议先写DFS,明确边界条件,列举所有可能下一次走的可能路径,进行递归,注意不要StackOverFlow,基本都可以解决问题,最多加上剪枝和记忆化搜索。对动规三部曲不熟悉,可以看看之前的文章,以及左神老师的视频,在动态规划推导方程这块讲的还是很不错的。
跳跃游戏 (DFS->记忆化搜索->动态规划/贪心证明)_ForwardSummer的博客-CSDN博客
Java-算法-动态规划_java动态规划_ForwardSummer的博客-CSDN博客
【一周刷爆LeetCode,算法大神左神(左程云)】
对于有些题目,可以使用贪心的思想,但此类题目往往不好想,且难以证明贪心的正确性,需要对题目的敏锐感觉以及大胆的尝试和边界的判断的准确性。
四.跳跃游戏类题目 做题顺序推荐
对于在前三篇的文章已经做过的十道题目,接下来做一个顺序推荐。
(1)leetcode70 爬楼梯(动态规划,滚动数组优化)
(2)leetcode剑指 Offer 10- II. 青蛙跳台阶问题(动态规划,整数取值较大的取余操作)
(3)剑指 Offer II 088. 爬楼梯的最少成本(动态规划,开始出现成本项)
(4)leetcode55 跳跃游戏(模拟,贪心)
(5)leetcode45 跳跃游戏 II(动态规划,动态规划剪枝,贪心)
(6)leetcode1306 跳跃游戏 III(DFS)
(7)leetcode1696 跳跃游戏 VI(动态规划,动态规划剪枝,动态规划+滑动窗口)
(8)leetcode1413 逐步求和得到正数的最小值(动态规划,滚动数组)
(9)leetcode1871 跳跃游戏 VII(动态规划,动态规划+前缀和,动态规划+滑动窗口,BFS剪枝)
(10)leetcode 403. 青蛙过河(DFS,记忆化搜索,动态规划)
以及其他五题:
(11)1654 到家的最少跳跃次数
(12)975 奇偶跳
(13)1340 跳跃游戏 V
(14)1345 跳跃游戏 IV
(15) LCP 09 最小跳跃次数
相关文章:
跳跃游戏类题目 总结篇
一.跳跃游戏类题目简单介绍 跳跃游戏是一种典型的算法题目,经常是给定一数组arr,从数组的某一位置i出发,根据一定的跳跃规则,比如从i位置能跳arr[i]步,或者小于arr[i]步,或者固定步数,直到到达某…...
Ubuntu20.04 交叉编译Paddle-OCR
第一步:交叉编译Paddle-Lite 参考链接:https://blog.csdn.net/sz76211822/article/details/130466597?spm1001.2014.3001.5501 第二步:交叉编译opencv4.x 参考链接:https://blog.csdn.net/sz76211822/article/details/13046168…...
Java 基础进阶篇(四)—— 权限修饰符、final 关键字与枚举
文章目录 一、权限修饰符二、final 关键字2.1 final 作用2.2 final 修饰变量举例2.3 常量 三、枚举3.1 枚举的格式3.2 枚举的特征3.3 枚举的应用 一、权限修饰符 权限修饰符 用于约束成员变量、构造器、方法等的访问范围。 权限修饰符: 有四种作用范围由小到大 (p…...
Linux命令集(Linux文件管理命令--touch指令篇)
Linux命令集(Linux文件管理命令--touch指令篇) Linux文件管理命令集(touch指令篇)6. touch(touch)1. 创建名为 file1 的空文件2. 创建名为 file1 和名为 file2 的多个文件3. 创建名为 file1 的文件并将访问时间设置为特定日期4. 创…...
软件工程学习教程大纲
软件工程学习教程大纲 第一章:软件工程概述 1.1 软件工程的定义和作用 软件工程的发展历程和趋势 软件工程的应用领域和特点 1.2 软件开发生命周期 软件开发生命周期的定义和阶段 软件开发生命周期的模型和方法 1.3 软件工程方法和工具 软件工程方法和工具…...
使用ChatGPT生成了十种排序算法
前言 当前ChatGPT非常火爆,对于程序员来说,ChatGPT可以帮助编写很多有用的代码。比如:在算法的实现上,就可以替我们省很多事。所以,小试牛刀一下,看看ChatGPT生成了排序算法怎么样? 简介 排序…...
GEE:MODIS计算遥感指数(NDVI、BSI、NDSI、EVI、LSWI、SIPI、EBI等)
作者:_养乐多_ 本文将介绍如何使用Google Earth Engine(GEE)进行遥感影像分析,具体地,使用MODIS数据集计算和可视化几种植被指数,以评估植被生长的状况,或者作为随机森林分类器训练需要的特征变量。 主要包括,NDVI、BSI、NDSI、EVI、LSWI、SIPI、EBI等。 NDVI(Normal…...
《*** 法治思想学习纲要》学习辅导
《*** 法治思想学习纲要》学习辅导 总分:100 及格分数:60 考试剩余时间: 1时 59分 35秒 单选题(共7题,每题5分) 1、全面依法治国中的“关键少数”是()。 正确答案:C、领导…...
初识Go语言18-面向对象【面向对象的概念、构造函数、继承与重写 泛型】
文章目录 面向对象面向对象的概念构造函数继承与重写泛型 面向对象 面向对象的概念 洗衣服过程剖析: 给洗衣机里加脏衣服和洗衣粉。启动洗衣机。洗衣机自动注水,然后滚动。脏衣服从黑颜色变成白颜色。洗衣机自动停止。 用面向过程的思想实现代码。 //…...
4.微服务项目实战---Sentinel--服务容错
4.1 高并发带来的问题 在微服务架构中,我们将业务拆分成一个个的服务,服务与服务之间可以相互调用,但是由于网络 原因或者自身的原因,服务并不能保证服务的 100% 可用,如果单个服务出现问题,调用这个服务…...
Postgres SELECT INSERT 流程 ?
SELECT 当执行SELECT查询时,PostgreSQL数据库会按照以下流程进行处理: 首先,查询语句会被发送到服务器。 服务器会接收查询请求,并根据查询条件从表中读取数据。 数据库会将数据存储在磁盘上的数据文件中,然后将其读…...
OpenAI推企业版ChatGPT,英伟达造AI安全卫士
GPT现在已经进入了淘金时代。虽然全球涌现出成千上万的大模型或ChatGPT变种,但一直能挣钱的人往往是卖铲子的人。 这不,围绕暴风眼中的大模型,已经有不少企业,开始研究起了大模型的“铲子”产品,而且开源和付费两不误…...
【原创】运维的终点是开发~chatGPT告诉你真相
文章目录 软件技术岗位鄙视链,你在哪层呢?让chatGPT告诉你运维工作好,还是开发工作好问它几个问题来自你的消息: 一个三年开发成长的案例和薪资来自ChatAI的消息:来自你的消息: 一个三年运维成长的案例和薪资来自ChatAI的消息:来自你的消息: …...
SSH 服务器、NFS 服务器、TFTP 服务器详解及测试
文章目录 前言一、SSH 服务器1、SSH 能做什么?2、安装 SSH 服务器3、测试 SSH 服务4、用 SecureCRT 测试 二、NFS 服务器1、NFS 能做什么?2、安装 NFS 软件包3、添加 NFS 共享目录4、启动 NFS 服务5、测试 NFS 服务器 三、TFTP 服务器1、TFTP 能做什么&a…...
1.3 HBase 基本架构
架构角色: 1)Master 实现类为 HMaster,负责监控集群中所有的 RegionServer 实例。主要作用如下: (1)管理元数据表格 hbase:meta,接收用户对表格创建修改删除的命令并执行 (2&#x…...
微机作业题
答案做的,正确性不保证。 1. 微型计算机的性能主要取决( A )的性能。 A. CPU B. 显示器 C. 硬盘 D. U盘 2. 计算机的工作过程,本质是( A )的过程。 A. 进行科学计算 …...
非极大值抑制详细原理(NMS含代码及详细注释)
作者主页:爱笑的男孩。的博客_CSDN博客-深度学习,YOLO,活动领域博主爱笑的男孩。擅长深度学习,YOLO,活动,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typecollect 个…...
女朋友说总是记不住Git命令,怎么办?安排!
如果你也和我女朋友一样总是忘记Git命令,觉得记忆Git命令是很枯燥和麻烦的事情。我写了一个包含了40 条常用Git命令的清单。你一定要收藏起来,当你忘记Git命令的时候,就可以打开来查看啦!!! 1.初始化本地仓…...
【ChatGLM】本地版ChatGPT ?6G显存即可轻松使用 !ChatGLM-6B 清华开源模型本地部署教程
目录 感谢B站秋葉aaaki大佬 前言 部署资源 部署流程 实机演示 ChatGML微调(人格炼成)(个人感觉蛮有趣的地方) 分享有趣の微调人格 实机演示(潘金莲人格) 感谢B站秋葉aaaki大佬 秋葉aaaki的个人空间…...
【MySQL】练习六 关系数据理论及数据库设计
文章目录 主要内容练习题一、选择题二、填空题三、判断题四、简答题主要内容 一个不好的关系模式可能存在的问题;函数依赖及三种函数依赖的定义:完全、部分、传递范式及1NF/2NF/3NF/BCNF的判定模式分解数据库设计的基本步骤概念设计(E-R图)逻辑模型(E-R图转换为逻辑模型的…...
UG NX二次开发(C++)-建模-修改NXObject或者Feature的颜色(一)
文章目录 1、前言2、在UG NX中修改Feature的颜色操作3、采用NXOpen(C)实现3.1 创建修改特征的方法3.2 调用ModifyFeatureColor方法3.3 测试结果 1、前言 在UG NX中,改变NXObject和Feature的操作是不相同的,所以其二次开发的代码也不一样,我们…...
全球天气weather.com的icon汇总表 天气现象代码枚举
全球天气weather.com的icon汇总表 天气现象代码枚举 Icon代码天气情况(列举常见情况,不包含全部)3大暴雨、大暴雨伴有风4大雷雨、强雷雨、雷雨、雷雨伴有风5雨或雪、雨伴有阵雪6雨夹冰粒、雨夹冰粒伴有风7雨夹雪、小雨夹雪、雪伴有冰粒和风、小雨夹雪伴有风、雪伴有冰粒8冻毛雨…...
【Python】【进阶篇】16、settings.py配置文件详解
目录 settings.py配置文件详解1. settings.py文件介绍1) BASE_DIR2) SECRET_KEY3) DEBUG4) ALLOWED_HOSTS5) INSTALLED_APPS6) MIDDLEWARE7) ROOT_URLCONF8) TEMPLATES9) WSGI_APPLICATION10) DATABASES11) AUTH_PASSWORD_VALIDATORS12) LANGUAGE_CODE和TIME_ZONE13) USE_118N和…...
【华为机试】HJ1 字符串最后一个单词的长度
【华为机试】 HJ1 字符串最后一个单词的长度 描述 计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾) 输入描述: 输入一行,代表要计算的字符串…...
Spring DI简介及依赖注入方式和依赖注入类型
目录 一、什么是依赖注入 二、依赖注入方式 1. Setter注入 2. 构造方法注入 3. 自动注入 三、依赖注入类型 1. 注入bean类型 2. 注入基本数据类型 3. 注入List集合 4. 注入Set集合 5. 注入Map集合 6. 注入Properties对象 往期专栏&文章相关导读 1. Maven系…...
ES6栈方法和队列方法
在 JavaScript 这门语言中,栈和队列是非常重要的数据结构,它们可以帮助我们更好地组织和管理数据。我们可以使用 ES6 标准中新增的方法来实现栈和队列的操作。这篇文章将介绍 ES6 中数组的栈方法和队列方法。 栈(Stack) 栈是一种后进先出(L…...
EventBus(事件总线)的使用和源码的简单解析
Google Guava EventBus(事件总线)的使用和源码的简单解析 什么是EventBus? 事件总线(EventBus)是一种广泛用于软件架构中的设计模式,用于实现解耦和松散耦合的通信机制。它可以帮助组织和管理应用程序中不同组件之间的通信&…...
《汇编语言》- 读书笔记 - 第2章-寄存器
《汇编语言》- 读书笔记 - 第2章-寄存器 2.0 8086CPU 寄存器段地址:偏移地址 2.1 通用寄存器2.2 字在寄存器中的存储2.3 几条汇编指令表2.1汇编指令举例表2.2 程序段中指令的执行情况之一问题 2.1表2.3 程序段中指令的执行情况之二问题 2.2 检测点 2.12.4 物理地址2.5 16位结构…...
English Learning - L3 综合练习 1 VOA-Color 2023.04.26 周三
English Learning - L3 综合练习 1 VOA-Color 2023.04.26 周三 主题整体听一遍精听句子 1扩展 way of doing | way to do sth 句子 2扩展 Expression扩展 base 句子 3句子 4扩展 red-hot 句子 5句子 6扩展 fiery 句子 7句子 8句子 9句子 10句子 11扩展 born 句子 12句子 13句子…...
50道web前端工程师面试题及答案解析,你学会了吗
简介:本文包含了50个实用的前端面试题及答案解析,涵盖了HTML、CSS、JavaScript、DOM、Ajax、MVC、模块化、ES6、SPA、Webpack、Babel、Virtual DOM、响应式设计、移动优先设计、响应式图片、CSS 预处理器、后处理器、模块化、布局、盒模型、浮动、定位、…...
wordpress是怎么用的/360广告推广平台
最近刚开始学dwr,发现使用起来确实方便多了。现在公司正好有需求要使用文件上传,所以就研究了一下dwr3的文件上传和下载。上传很方便,但是要显示进度条,我没找到相关的接口,我觉得dwr3应该会提供一个方便的接口用来显示…...
深圳品牌网站制作公司/网站推广软件免费版
这里是程序员天堂,它涵盖了程序员所有能用到的工具,技术社区,技术团队等等等,程序员全部需求功能都在这里,凡是关于编程,只有你想不到的,没有上面没有的。 https://www.coderutil.com/...
做网站 广告费 步骤/百度一下的网址
# RSA加解密及签名算法的技术原理及其Go语言实现对称加密中,加密和解密使用相同的密钥,因此必须向解密者配送密钥,即密钥配送问题。而非对称加密中,由于加密和解密分别使用公钥和私钥,而公钥是公开的,因此可…...
洛阳网站建设哪家权威/sem培训班学费哪个好
javascript是一种基于对象的语言,但它没有类的概念,所以又和实际面向对象的语言有区别,面向对象是javascript中的难点之一。现在就我所理解的总结一下,便于以后复习: 一、创建对象 1、创建自定义对象最简单的方式就是创…...
廊坊做网站电话/seo关键词优化外包
问题描述:父组件传如lesser和larger两个参数,并且是ajax从服务器获取的。子组件定义created阶段输出lesser和larger。但larger为空。改成延迟输出则正确。问题来源:https://segmentfault.com/q/1010000008912491提问者的主要问题是没有搞清楚…...
彩投网站建设/制作网站
BI是Business Intelligence(BI) 数据分析一般分为三个层面: (1)Memory内存分析层面 (2)BI分析层面 (3)Massive分析层面...