力扣第 55 题 跳跃游戏
力扣第 55 题 跳跃游戏(Jump Game)。题目要求判断一个非负整数数组中,是否能够从第一个位置跳跃到最后一个位置。每个元素表示从当前位置最多可以跳跃的步数。
解题思路
我们可以用 贪心算法 来解决这个问题。贪心的核心思想是始终维护当前能够到达的最远位置,并判断是否可以覆盖到数组的最后一个位置。
- 初始化变量
maxReach
为 0,表示当前能够跳到的最远位置。 - 遍历数组的每个位置
i
,判断:- 如果当前下标
i
大于maxReach
,说明无法从前面的跳跃到达位置i
,返回false
。 - 更新
maxReach
为max(maxReach, i + nums[i])
,表示当前能够跳到的最远位置。
- 如果当前下标
- 如果遍历结束后,
maxReach
大于等于数组的最后一个下标,则返回true
。
C语言实现
#include <stdio.h>
#include <stdbool.h>// 跳跃游戏判断函数
bool canJump(int* nums, int numsSize) {int maxReach = 0; // 能到达的最远位置for (int i = 0; i < numsSize; i++) {// 如果当前位置超过能到达的最远位置,说明无法继续跳跃if (i > maxReach) {return false;}// 更新能到达的最远位置if (i + nums[i] > maxReach) {maxReach = i + nums[i];}// 如果最远位置已经可以覆盖最后一个位置,则直接返回 trueif (maxReach >= numsSize - 1) {return true;}}return false;
}int main() {int nums[] = {2, 3, 1, 1, 4};int numsSize = sizeof(nums) / sizeof(nums[0]);if (canJump(nums, numsSize)) {printf("可以跳到最后一个位置!\n");} else {printf("无法跳到最后一个位置!\n");}return 0;
}
示例解析
示例 1:
输入:
int nums[] = {2, 3, 1, 1, 4};
输出:
可以跳到最后一个位置!
解释:
- 从第一个位置跳跃 2 步到索引 1,接着跳跃 3 步到最后一个位置。
示例 2:
输入:
int nums[] = {3, 2, 1, 0, 4};
输出:
无法跳到最后一个位置!
解释:
- 无论怎么跳跃,都无法跳过索引 3 的位置,因为索引 3 的值为 0。
复杂度分析
- 时间复杂度: O ( n ) O(n) O(n)
- 遍历数组中的每个元素一次,线性时间复杂度。
- 空间复杂度: O ( 1 ) O(1) O(1)
- 只使用了一个变量
maxReach
,空间复杂度为常数。
- 只使用了一个变量
贪心算法的核心
贪心的本质是:
- 只关心是否能到达尽可能远的位置,而不需要模拟实际的跳跃过程。
- 一旦
maxReach
无法覆盖某个位置,直接返回false
;如果能够覆盖到最后一个位置,返回true
。
相关文章:
力扣第 55 题 跳跃游戏
力扣第 55 题 跳跃游戏(Jump Game)。题目要求判断一个非负整数数组中,是否能够从第一个位置跳跃到最后一个位置。每个元素表示从当前位置最多可以跳跃的步数。 解题思路 我们可以用 贪心算法 来解决这个问题。贪心的核心思想是始终维护当前…...

Golang | Leetcode Golang题解之第564题寻找最近的回文数
题目: 题解: func nearestPalindromic(n string) string {m : len(n)candidates : []int{int(math.Pow10(m-1)) - 1, int(math.Pow10(m)) 1}selfPrefix, _ : strconv.Atoi(n[:(m1)/2])for _, x : range []int{selfPrefix - 1, selfPrefix, selfPrefix …...

Spring Boot汽车资讯:科技与速度的交响
3系统分析 3.1可行性分析 通过对本汽车资讯网站实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本汽车资讯网站采用SSM框架,JAVA作为开发语言&#…...

从 IDC 到云原生:稳定性提升 100%,成本下降 50%,热联集团的数字化转型与未来展望
作者:金峰(项良)、朱永林、赵世振(寰奕) 公司简介 杭州热联集团股份有限公司成立于 1997 年 10 月,是隶属杭州市实业投资集团的国有控股公司。公司专业从事国际、国内钢铁贸易黑色大宗商品及产业服务&…...

移动零
移动零 1、题目描述2、解答思路 1、题目描述 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 2、解答思路 已知数组后端若干元素为0&…...

C#编写的日志记录组件 - 开源研究系列文章
以前编写过一个日志记录组件的博文,这次发布一个修改过的完善版本。 1、 项目目录; 2、 源码介绍; 1) 实现; 2) 使用; 后面的参数为级别设置,只有大于这个级别的才进行日志记录,限制了日志记录的…...

猎板PCB罗杰斯板材的应用案例
以下是几个猎板 PCB 与罗杰斯板材结合的具体案例: 案例一:5G 通信基站天线 PCB 在 5G 通信基站的天线系统中,对高频信号的传输和处理要求极高。猎板 PCB 采用罗杰斯板材,凭借其稳定的低介电常数(如 RO4003C 板材&…...

使用esp32c3开发板通过wifi连网络web服务器
实验基本拓扑就是: esp32c3开发板通过Wifi模块连上局域网,局域网一台服务器通过FastAPI提供8000端口的web服务,在esp32c3开发板中烧录micropython固件,在python交互模式下,连上Wifi模块,并使用socket模块获…...

供应链管理、一件代发系统功能及源码分享 PHP+Mysql
随着电商行业的不断发展,传统的库存管理模式已经逐渐无法满足市场需求。越来越多的企业选择“一件代发”模式,即商家不需要自己储备商品库存,而是将订单直接转给供应商,由供应商直接进行发货。这种方式极大地降低了企业的运营成本…...

Windows docker下载minio出现“Using default tag: latestError response from daemon”
Windows docker下载minio出现 Using default tag: latest Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded 此类情况,一般为镜像地址问题。 {"registry-mirrors": ["https://docker.re…...
工厂模式-简单工厂模式
1、简单工厂模式 在工厂类的静态方法中,根据要创建产品的type类型,通过if else来返回对应的对象 1.1定义产品抽象接口Product /*** @desc 产品抽象接口**/ public interface Product {void use(); } 1.2 定义具体的产品A和B /*** @desc 产品A**/ public class ProductA i…...
【linux】使用minicom调试串口
在Linux中使用minicom进行串口通信调试,你需要先确保已经安装了minicom。如果还没有安装,你可以使用包管理器进行安装,例如在Debian或Ubuntu系统上使用apt-get,在Red Hat或CentOS系统上使用yum或dnf。 安装完成后,你需…...
C# 异常处理、多个异常、自定义异常处理
C# 异常 异常是为处理异常的发生而设计的,这些特殊情况会改变程序执行的正常流程。 引发或引发异常。 在执行应用期间,许多事情可能出错。 磁盘可能已满,我们无法保存文件。 当我们的应用尝试连接到站点时,Internet 连接可能会断…...

【从零开始的LeetCode-算法】3210. 找出加密后的字符串
给你一个字符串 s 和一个整数 k。请你使用以下算法加密字符串: 对于字符串 s 中的每个字符 c,用字符串中 c 后面的第 k 个字符替换 c(以循环方式)。 返回加密后的字符串。 示例 1: 输入: s "dart&…...

redis linux 安装
下载解压 https://download.redis.io/releases/ tar -zvxf ----redis-7.4.1编译 进入目录下 # redis 依赖c yum install gcc-cmake可能会有问题,所以记得换源# 安装到 /usr/local/redis make PREFIX/usr/local/redis installcd src ./redis-serverredis.confi…...

springboot006基于SpringBoot的网上订餐系统(源码+包运行+LW+技术指导)
项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…...
【QNX】QNX侧如何抓取日志?
🦋slog2info 是 QNX 实时操作系统中的一个实用工具,用于读取和解析 QNX 的系统日志(System Logger v2,简称 slog2)。 🦋slog2 是 QNX 提供的用于记录系统和应用程序日志信息的服务,它比传统的 syslog 服务更加强大和灵活,能够处理大量日志信息,并提供高级的过滤和检…...
深度学习:计算卷积神经网络中输出特征图尺寸的关键公式
计算卷积神经网络中输出特征图尺寸的关键公式 在设计卷积神经网络(CNN)时,准确计算每个卷积层的输出特征图尺寸是至关重要的。这不仅关系到网络的结构设计,也直接影响参数优化和整体性能。适当的计算可以确保网络层正确连接&…...

【惠州大亚湾】之维修戴尔服务器DELLR730XD
1:广东省惠州市大亚湾某游客服务中心来电报修1台DELL PowerEdge R730xd服务器无法正常开机的问题。听该负责描述这台服务器因为服务中心电力切换导致意外关机,来电后发现就无法正常开机了。所以找到我们希望配合维修。 2:该机器由于特别着急…...
跟我学C++中级篇——Design Patterns的通俗说法
一、设计模式 Design patterns,软件设计模式,它是什么?很多初学者会被这种高大上的东西给唬住。其实,所有的书籍上都说得很清楚,只是它们把这种说法说得很高大上而已。举个简单例子,在抖音上经常可以看到介…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...

2.3 物理层设备
在这个视频中,我们要学习工作在物理层的两种网络设备,分别是中继器和集线器。首先来看中继器。在计算机网络中两个节点之间,需要通过物理传输媒体或者说物理传输介质进行连接。像同轴电缆、双绞线就是典型的传输介质,假设A节点要给…...