当前位置: 首页 > news >正文

力扣第55题 跳跃游戏 c++ 贪心 + 覆盖 加暴力超时参考

题目

55. 跳跃游戏

中等

相关标签

贪心   数组   动态规划

给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。

判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。

示例 1:

输入:nums = [2,3,1,1,4]
输出:true
解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。

示例 2:

输入:nums = [3,2,1,0,4]
输出:false
解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。

提示:

  • 1 <= nums.length <= 104
  • 0 <= nums[i] <= 105

思路和解题方法

  1. 首先,我们维护一个变量cover,表示当前能够覆盖的最远距离。如果数组只有一个元素,则一定可以到达终点,直接返回true
  2. 然后,我们从位置0开始遍历数组,遍历范围是当前可覆盖范围内的所有位置,包括位置i。在遍历过程中,不断更新cover,使其取最大值。
  3. 如果在遍历过程中发现cover已经覆盖了数组的最后一个位置(即cover >= nums.size() - 1),则说明可以到达终点,直接返回true
  4. 如果最终没有到达终点,则说明无法到达,返回false

复杂度

        时间复杂度:

                O(n)

        时间复杂度是O(n),其中n是输入数组的长度。这是因为我们只需要一次遍历数组即可完成判断。

        空间复杂度

                O(1)

        空间复杂度是O(1),即常数级别的额外空间。除了几个变量(coveri)以及函数返回值外,代码并没有使用额外的数组或数据结构来存储中间结果。因此,空间复杂度是常数级别的。

c++ 代码

class Solution {
public:bool canJump(vector<int>& nums) {int cover = 0;  // 当前能够覆盖的最远距离if (nums.size() == 1) return true; // 如果只有一个元素,则一定可以到达for (int i = 0; i <= cover; i++) { // 遍历当前可覆盖范围内的所有位置// 注意这里的等于号,因为 i 指的是当前位置,所以必须要考虑到 i 也可以到达cover = max(i + nums[i], cover); // 更新能够覆盖的最远距离// 这里的 max 函数是为了保证更新后的 cover 是最大的if (cover >= nums.size() - 1) return true; // 如果当前能够覆盖的最远距离已经覆盖了终点,则说明可以到达终点}return false; // 如果最后还没有到达终点,则说明无法到达}
};

本人试过了O(n*n)的代码,超出时间限制了

具体暴力的代码(c++)

class Solution {
public:bool canJump(vector<int>& nums) {int n = nums.size();vector<bool> canReach(n, false); // 创建一个长度为n的数组,初始值都为falsecanReach[0] = true; // 初始位置可达for (int i = 0; i < n; i++) {if (!canReach[i]) continue; // 如果当前位置不可达,则跳过int maxJump = min(i + nums[i], n - 1); // 当前位置最远能跳到的位置for (int j = i + 1; j <= maxJump; j++) {canReach[j] = true; // 将可达位置标记为true}}return canReach[n - 1]; // 返回最后一个位置是否可达}
};

觉得有用的话可以点点赞,支持一下。

如果愿意的话关注一下。会对你有更多的帮助。

每天都会不定时更新哦  >人<  。

相关文章:

力扣第55题 跳跃游戏 c++ 贪心 + 覆盖 加暴力超时参考

题目 55. 跳跃游戏 中等 相关标签 贪心 数组 动态规划 给你一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标&#xff0c;如果可以&#xff0c;返回 true &…...

系列十四、Redis的集群(一)

一、是什么 1.1、概述 由于数据量过大&#xff0c;单个master-slave模式难以承担&#xff0c;当出现master节点故障的一瞬间&#xff0c;哨兵重新选举新的master节点之前&#xff0c;这一小段时间将会导致Redis服务不可用&#xff0c;因此需要对多个master-slave主从复制集进行…...

红帽认证 | RHCE考试包括哪些内容?

Red Hat Certified Engineer&#xff08;RHCE&#xff09;考试是一项面向企业级系统管理员的认证考试&#xff0c;是认证Linux系统管理员技能的一种方式。 RHCE证书是Linux管理员领域中最受欢迎和最受认可的证书之一。 那RHCE考试都有哪些内容呢&#xff0c;一起来看看吧&…...

ASPICE标准快速掌握「3.1. 实践示例」

实践示例 本章内容是最重要的,建议慢下来跟着博主的思路一步一步前进 1. 示例背景说明 假设我们现在是一个Tier1的车窗控制软件开发商,我们给OEM提供软件解决方案 1.1. 本过程目标 根据客户、上级部门、安全团队与质量团队等提出的要求,本项目要求SYS.1过程达到ASPICE过…...

pytorch 训练可视化

pytorch 训练可视化 1.from torch.utils.tensorboard 1.from torch.utils.tensorboard from torch.utils.tensorboard import SummaryWriter在最新版本的pytorch中官方提供了tensorboard的api。以下是官方教程的链接 https://pytorch.org/tutorials/intermediate/tensorboard…...

webgis开发参考资料

一、ArcGIS相关 1、ArcGIS for Server 10.3.X 新型紧凑型缓存的解读和应用 http://zhihu.geoscene.cn/article/1038 2、arcgis server 紧促&#xff08;bundle&#xff09;格式缓存文件的读取 https://blog.csdn.net/abc553226713/article/details/8668839 3、ArcGIS 10.0紧…...

JSX 注意事项

学习目标&#xff1a; 掌握 JSX 实际开发过程中的一些注意事项   1. JSX 必须具有一个根节点&#xff0c;如果没有根节点可以使用<></>(幽灵节点)代替根节点将所有元素包裹起来 function App() {return (<><div className"App">1</div&…...

MQ常见的问题(kafka保证消息不丢失)

MQ常见的问题 1&#xff0c;mq如何避免消息堆积问题。 消息堆积&#xff1a;生产者的生产速率远远大于消费者的消费速率&#xff0c;使消息大批量的堆积在消息队列。 解决方案&#xff1a;1&#xff0c;提升消费者的消费速率&#xff08;增加消费者集群&#xff09; 2&…...

Unity编辑器扩展 --- AssetPostprocessor资源导入自动设置

unity导入资源的编辑器设置: 防止策划资源乱导入,资源导入需要的格式&#xff0c;统一资源管理 AssetPostprocessor资源导入管线 AssetPostprocessor用于在资源导入时自动做一些设置&#xff0c;比如当导入大量图片时&#xff0c;自动设置图片的类型&#xff0c;大小等。Ass…...

用Flask快速生成报表

一、前言 《用Python快速生成报表之一》 我们介绍了用html-table快速生成表格数据报表&#xff0c;今天我们再介绍一下用Python Flask 快速开发报表&#xff0c;使用的是最古老的套页面方式。 二、Flask快速生成报表 Python有N多Web框架&#xff0c;最强大最出名的是Django&…...

关于时序预测可解释性预测

本文做一些论文收集使用&#xff0c;先更新一两篇 论文 1 Learning Structured Components: Towards Modular and Interpretable Multivariate Time Series Forecasting 论文地址&#xff1a; https://browse.arxiv.org/pdf/2305.13036.pdf 论文代码&#xff1a;https://gi…...

泊车功能专题介绍 ———— AVP系统技术要求之场地规范定位要求

文章目录 停车场场地规范场地分级规范场地标识规范位置标识跨层标识十字路口标识丁字路口处标识闸口/收费口标识上下车点标识 定位功能要求环境要求定位精度要求场端定位要求道路自动驾驶定位要求泊车入位定位要求 车端定位要求道路自动驾驶定位要求泊车入位定位要求初始定位要…...

【STM32】时钟设置函数(寄存器版)

一、STM32时钟设置函数移植 1.时钟模块回顾 一个疑问 前面代码并没有设置时钟为什么可以直接使用。 2.时钟树 3.时钟树分析 1.内部晶振&#xff08;HSI&#xff09; 内部晶振不稳定&#xff0c;当我们上电后&#xff0c;会自动产生振动&#xff0c;自动产生时钟&#xff0c;…...

【DDD】贫血模型和充血模型

基于业务开发的项目大多是MVC架构的。成为Web项目的标准开发模式&#xff0c;但它却是违反面向对象编程风格的&#xff0c;是面向过程的。之后基于领域驱动设计开发模式被人提倡。 DDD&#xff08;Domain-driven design&#xff09;领域驱动设计是一种通过将实现连接到持续进化…...

【JS学习】字符串的substring方法

1. 介绍 substring 是JavaScript字符串对象的一个方法&#xff0c;用于从一个字符串中提取子字符串&#xff0c;并返回提取的部分。 可以使用 substring 方法来截取字符串的一部分&#xff0c;指定起始索引和结束索引&#xff08;或只指定起始索引&#xff09;。 这个方法不…...

vue部署,chunk文件有部分404,解决方案

排查方案&#xff1a; 1&#xff0c;检查项目配置&#xff0c;再vue.config.js里面配置 publicPath: "./",2&#xff0c;打包后检查报错文件是否存在打包目录 3&#xff0c;如果1,2都有 找到部署后404的文件&#xff0c;查看是否为空文件 style里面全注释也会打包文…...

《红蓝攻防对抗实战》六.常规反弹之利用NC在windows系统执行反弹shell

目录 一.利用NC工具在windows系统执行反弹shell 1. Windows正向连接shell 2.Windows反向连接shell 前文推荐&#xff1a; 《红蓝攻防对抗实战》一. 隧道穿透技术详解《红蓝攻防对抗实战》二.内网探测协议出网之TCP/UDP协议探测出网《红蓝攻防对抗实战》三.内网探测协议出网…...

python如何创建自己的对冲交易算法

在这篇文章中&#xff0c;我解释了如何创建一个人工智能来每天为我进行自动交易。 随着机器学习的现代进步和在线数据的轻松访问&#xff0c;参与量化交易变得前所未有的容易。为了让事情变得更好&#xff0c;AWS 等云工具可以轻松地将交易想法转化为真正的、功能齐全的交易机器…...

Ubuntu22.04安装,SSH无法连接

Ubuntu初始化安装后&#xff0c;系统默认不允许root通过ssh连接&#xff0c;因此需要完成三个设置 1.修改ssh配置文件 vim /etc/ssh/sshd_config 将PermitRootLogin注释打开&#xff0c;并将值改为yes 保存修改并退出 :wq 2.重启ssh服务 sudo service ssh restart 3.重新打…...

解决dirsearch扫描工具pkg_resources模块警告问题

一、pkg_resources模块问题 ┌──(kali㉿kali)-[~/桌面/XXX/dirsearch-master] └─$ python dirsearch.py -h /home/kali/XX/XXXX/dirsearch-master/dirsearch.py:23: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io…...

Pip生成requirements.txt文件

在Python开发中&#xff0c;requirements.txt文件是一个非常重要的文件&#xff0c;它列出了项目所需的所有外部Python库及其版本号。这对于项目的部署和版本控制非常有帮助&#xff0c;因为它确保了所有开发者和部署环境都能使用相同版本的库。 如何生成requirements.txt文件 …...

PaddlePaddle-v3.3镜像测评:开箱即用的深度学习平台,到底有多方便?

PaddlePaddle-v3.3镜像测评&#xff1a;开箱即用的深度学习平台&#xff0c;到底有多方便&#xff1f; 1. PaddlePaddle-v3.3镜像初体验 1.1 为什么选择PaddlePaddle PaddlePaddle作为国内领先的深度学习框架&#xff0c;已经服务超过2185万开发者和67万家企业。最新发布的v…...

2026 年重庆压浆料厂家选择 行业经验参考分析

2026 年&#xff0c;在重庆进行工程建设时&#xff0c;选择合适的压浆料厂家至关重要。本文将深入分析当前压浆料行业现状&#xff0c;为你提供可落地的厂家选择干货&#xff0c;助你解决选择难题。在压浆料的使用过程中&#xff0c;用户面临着诸多痛点。从材料性能来看&#x…...

AgentCPM历史记录功能:自动保存所有研报,构建个人知识库

AgentCPM历史记录功能&#xff1a;自动保存所有研报&#xff0c;构建个人知识库 1. 为什么需要研报历史记录功能 1.1 研究工作的连续性挑战 专业分析师和研究人员每天都会产生大量研究内容&#xff0c;但传统工作方式存在明显痛点&#xff1a; 内容分散&#xff1a;不同日期…...

STM32+DHT11温湿度监测实战:从硬件接线到串口调试全流程(附避坑指南)

STM32DHT11温湿度监测实战&#xff1a;从硬件接线到串口调试全流程&#xff08;附避坑指南&#xff09; 在物联网和智能硬件快速发展的今天&#xff0c;环境监测已成为许多项目的基础需求。无论是智能家居中的温湿度调控&#xff0c;还是农业大棚中的环境监控&#xff0c;亦或是…...

Qwen1.5-1.8B GPTQ模型轻量化部署效果:低显存占用下的性能保持

Qwen1.5-1.8B GPTQ模型轻量化部署效果&#xff1a;低显存占用下的性能保持 最近在折腾大模型本地部署的朋友&#xff0c;可能都遇到过同一个头疼的问题&#xff1a;模型效果不错&#xff0c;但显存要求太高&#xff0c;自己的显卡根本跑不起来。动辄几十GB的显存需求&#xff…...

SEER‘S EYE模型Dify平台集成指南:可视化AI应用搭建

SEERS EYE模型Dify平台集成指南&#xff1a;可视化AI应用搭建 你是不是觉得&#xff0c;把那些功能强大的AI模型用起来&#xff0c;总得写一堆代码&#xff0c;搞一堆复杂的配置&#xff0c;门槛太高了&#xff1f;特别是像SEERS EYE&#xff08;预言家之眼&#xff09;这样的…...

【PyCon 2025闭门分享精要】:Python 3.14 JIT底层调度器深度调优——用3行代码撬动47% CPU利用率提升

第一章&#xff1a;Python 3.14 JIT编译器性能调优配置总览Python 3.14 引入了实验性内置 JIT&#xff08;Just-In-Time&#xff09;编译器&#xff0c;基于 Pyston 的优化后端重构&#xff0c;支持函数级动态编译与类型特化。该 JIT 默认处于禁用状态&#xff0c;需通过环境变…...

GLM-4V-9B惊艳效果展示:电路板图元器件识别+故障点定位+维修指引生成

GLM-4V-9B惊艳效果展示&#xff1a;电路板图元器件识别故障点定位维修指引生成 安全声明&#xff1a;本文仅展示AI技术能力&#xff0c;所有电路板图像均为演示用途&#xff0c;不涉及任何实际设备或敏感信息 1. 项目概述与核心能力 GLM-4V-9B多模态大模型在工业视觉检测领域展…...

避坑指南:YOLOv8模型部署到小程序的5个常见错误及解决方案

YOLOv8模型部署到小程序的避坑实战手册 第一次把YOLOv8模型塞进小程序时&#xff0c;我盯着屏幕上那个"500 Internal Server Error"发呆了半小时。这已经是第三次部署失败了&#xff0c;Docker日志里那些红色错误信息像在嘲笑我的天真。后来才发现&#xff0c;原来只…...