跳跃游戏类题目 总结篇

news2024/7/6 17:59:29

一.跳跃游戏类题目简单介绍

        跳跃游戏是一种典型的算法题目,经常是给定一数组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 最小跳跃次数

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ 链表概述

背景 当需要存储大量数据并需要对其进行操作时,常常需要使用到链表这种数据结构。它可以用来存储一系列的元素并支持插入、删除、遍历等操作。 概念 一般来说,链表是由若干个节点组成的,每个节点包含了两个部分的内容:存储的数…

【嵌入式环境下linux内核及驱动学习笔记-(6-内核 I/O)-阻塞与非阻塞】

目录 1、阻塞与非阻塞1.1 以对recvfrom函数的调用及执行过程来说明阻塞的操作。1.2 以对recvfrom函数的不断轮询调用为例,说明非阻塞时进程的行为。1.3 简单介绍内核链表及等待队列1.4 等待队列1.4.1 定义等待队列头部(wait_queue_head_t)1.4…

vue动态添加多组数据添加正则限制

如图新增多条数据,如果删除其中一条正则校验失败的数据,提示不会随之删除,若想提示删除并不清空数据 delete (item, index) {this.applicationForm.reserveInfo.forEach((v, i) > {if (i index) {this.$refs.formValidate.fields.forEac…

UFT——操作模块

示例一 创建一个可重复利用的登录测试更改Action的名称。使用本地数据表。创建一个主调用测试。建立测试迭代。处理缺失的Action。 分析:就是创建一个只有登录的测试起名为login,然后在创建一个主测试起名字比如main,在main中,调用…

微信小程序定义模板

微信小程序提供模板(template)功能,把一些可以共用的,复用的代码在模板中定义为代码片段,然后在不同的地方调用,可以实现一次编写,多次引用的效果。 首先我们看一下官网是如何操作的 一般的情…

笔记:对多维torch进行任意维度的多“行”操作

如何取出多维torch指定维度的指定“行” 从二维torch开始新建torch取出某一行取出某一列一次性取出多行取出连续的多行取出不连续的多行 一次取出多列取出连续的多列取出不连续的多列 考虑三维torch取出三维torch的任意两行(means 在dim0上操作)取出连续…

( 字符串) 9. 回文数 ——【Leetcode每日一题】

❓9. 回文数 难度:简单 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 例如…

Git的安装与使用+Git在IDEA中的使用

文章目录 一、Git概述1、版本控制器的方式2、Git的工作流程图 二、Git的安装与常用命令1、Git环境安装2、Git环境基本配置3、获取本地仓库4、基础操作指令 三、分支1、常用指令2、解决合并冲突 四、Git远程仓库1、创建远程仓库2、远程操作仓库3、冲突处理 四、IDEA中使用Git1、…

数据结构——二叉树

二叉树 1 二叉树的种类 1.1 满二叉树 节点数量为 2^k - 1 (k是树的深度,底层的叶子节点都是满的) 1.2 完全二叉树 完全二叉树是指除了下面一层外,其余层的节点都是满的; 且最下面一层的叶子节点是从左到右连续的。 下面这个…

pci总线协议学习笔记——PCI总线基本概念

1、pci总线概述 (1)PCI,外设组件互连标准(Peripheral Component Interconnection),是一种由英特尔(Intel)公司1991年推出的用于定义局部总线的标准; (2)最早提出的PCI总线工作在33MHz频率之下,传输带宽达到133MB/s(33M…

【LeetCode】236. 二叉树的最近公共祖先

1.问题 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是…

1992-2022年31省GDP、第一产业增加值、第二产业增加值 第三产业增加值

1992-2022年31省GDP、第一产业增加值、第二产业增加值 第三产业增加值 1、时间:1992-2022年 2、范围:包括31省 3、指标:省GDP、省第一产业增加值、省第二产业增加值、省第三产业增加值 4、缺失情况说明:无缺失 5、来源&#…

【python知识】__init__.py的来龙去脉

一、说明 我们常见__init__.py文件,但说不清楚它的用途,在本文,我将首先把它的来龙去脉说清楚,然后告诉大家,如何编制python工程,培养全局的编程格局。 二、包-模块-函数结构 在Python工程里,当…

playwright连接已有浏览器操作

文章目录 playwright连接已有浏览器操作前置准备打开本地已有缓存的Chrome(理解)指定端口打开浏览器连接指定端口已启动浏览器(推荐) playwright连接已有浏览器操作 前置准备 pip install playwright # 安装playwright的python…

红黑树数据结构

现在JAVASE中HashMap中底层源码是由数组链表红黑树进行设计的,然后很多地方也是用到红黑树,这里单独对红黑树数据结构进行简单的介绍。 目录 红黑树概念 红黑树的性质 自平衡规则 代码 红黑树概念 红黑树,是一种二叉搜索树,…

linux常用命令大全(保姆及入门)

linux常用命令大全 一、文件处理命令1、目录处理命令:ls2、目录处理命令2.1 mkdir2.2 pwd2.3 rmdir2.4 cp2.5 mv2.6 rm 3.文件处理命令3.1 touch3.2 cat3.3 tac3.4 more3.5 less3.6 head3.7 tail 4.链接命令4.1 ln 二、权限管理命令2.1 chmod2.2 chown2.3 chgrp 2.4…

VRPTW:新雀优化算法NOA求解带时间窗的车辆路径问题

一、新雀优化算法NOA求解带时间窗的车辆路径问题 1.1VRPTW模型如下: 带时间窗的车辆路径问题(Vehicle Routing Problem with Time Windows, VRPTW) 1.2新雀优化算法NOA求解VRPTW close all clear clc SearchAgents_no30; % 种群大小 Function_nameF1; Max_ite…

准备“开黑”,电脑却“告退”?游戏闪退的解决方法

游戏玩家近期可能会发现,不少大作陆陆续续登录PC市场,比如《死亡岛 2》、《无畏契约》等。但也有不少游戏用户会发现,电脑玩游戏时容易出现闪退的情况。特别是在进行高负荷运算的时候,有一些游戏更为容易出现这种情况,…

[架构之路-176]-《软考-系统分析师》-17-嵌入式系统分析与设计 -1- 实时性(任务切换时间、中断延迟时间、中断响应时间)、可靠性、功耗、体积、成本

目录 前言: 1 7 . 1 嵌 入 式 系 统 概 述 1 . 嵌入式系统的特点 (1) 系统专用性强。 (2) 系统实时性强。 (3) 软硬件依赖性强 (4) 处理器专用。 ( 5 ) 多种技术紧密结合。 (6) 系统透明性。 (7) 系统资源受限。 2 . 嵌入式系统的组成 1 7 . 3 嵌入式实…