力扣 55题 跳跃游戏 记录

ops/2024/12/22 15:00:25/

题目描述

给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。示例 1:
输入:nums = [2,3,1,1,4]
输出:true
解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 13 步到达最后一个下标。示例 2:
输入:nums = [3,2,1,0,4]
输出:false
解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。

思路

我们可以使用贪心算法来解决这个问题。目标是在遍历数组时,记录能够到达的最远位置,并在过程中检查是否可以到达或超过最后一个下标。

解题步骤:

  1. 初始化一个变量 maxReach,用于记录当前可以到达的最远位置,初始值为 0。
  2. 遍历数组中的每个位置 i,如果当前位置可以到达(即 i <= maxReach),那么更新 maxReach 为
    max(maxReach, i + nums[i])。
  3. 如果在遍历过程中 maxReach 能够达到或超过数组的最后一个下标,返回 true。
  4. 如果遍历结束时,maxReach 仍然无法到达数组的最后一个下标,返回 false。

完整代码

#include <iostream>
#include <vector>
#include <algorithm>  // std::maxclass Solution {
public:bool canJump(const std::vector<int>& nums) {int maxReach = 0;  // 记录能到达的最远位置// 遍历数组for (int i = 0; i < nums.size(); ++i) {// 如果当前位置无法到达,则返回 falseif (i > maxReach) {return false;}// 更新能到达的最远位置maxReach = std::max(maxReach, i + nums[i]);// 如果能到达或超过最后一个下标,直接返回 trueif (maxReach >= nums.size() - 1) {return true;}}// 最后返回是否能到达最后一个下标return maxReach >= nums.size() - 1;}
};int main() {// 示例用例Solution solution;std::vector<int> nums = {2, 3, 1, 1, 4};// 调用函数bool result = solution.canJump(nums);// 输出结果std::cout << (result ? "可以到达最后一个下标" : "无法到达最后一个下标") << std::endl;return 0;
}

http://www.ppmy.cn/ops/107899.html

相关文章

sv标准研读第一章-综述

第1章 综述 1.1范围 本标准为IEEE 1800™SystemVerilog语言提供了语法和语义的定义&#xff0c;这是一种统一的硬件设计、规范和验证语言。该标准包括对行为级、寄存器传输级(RTL)和门级硬件描述、testbentch、coverage、assertion、面向对象和约束随机结构的支持&#xff0c…

免费无广告的音乐播放软件

酷狗音乐概念版可以免费听歌&#xff0c;但是新版本会有很多广告。 实测v2.4.2这个版本的最好用&#xff0c;没有广告和花里胡哨的功能&#xff0c;点播放后会自动签到领1日会员&#xff0c;音乐不会断播。 如果遇到暂时没有版权的歌&#xff0c;直接点击收藏&#xff0c;再到…

【大数据分析与挖掘算法】matlab实现——Apriori关联规则算法

实验一 &#xff1a;Apriori关联规则算法 一、实验目的 掌握有关Apriori关联规则算法的理论知识&#xff0c;从中了解关联规则的数学模型、基本思想、方法及应用。 二、实验任务 根据某超市的五条客户购物清单记录&#xff0c;使用Apriori关联规则算法进行计算&#xff0c;…

TCP远程命令执行

目录 一. 命令集 二. 命令执行模块实现 三. 服务端模块实现 四. 服务端调用模块实现 五. 客户端模块实现 六. 效果展示 此篇教大家如何利用TCP进行远程命令执行。 一. 命令集 将值得信任的命令放进一个txt文件中&#xff0c;执行命令时&#xff0c;就去这…

芯旺微,车规级32位MCU KF32A芯片简介

文章目录 1. 产品功能特点2. 行业应用3. 开发环境(IDE)4. 开发资源5. KungFu 内核参考1. 产品功能特点 2. 行业应用 汽车照明汽车车窗控制汽车空调面板汽车控制器3. 开发环境(IDE)

人工智能中的RAG指的是什么

目录 RAG的工作原理 RAG的优势 应用场景 例子 总结 在人工智能领域&#xff0c;RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09;是一种结合检索和生成技术的模型架构。它将外部知识库中的信息检索与大规模语言模型&#xff08;如GPT&…

【大疆 SDR 图传 P1 】 功能拆解,通信功能剖析

大疆 SDR 图传 P1 拆解视频P1 SoC1、哲酷2、小米3、大疆&#xff08;文章主角&#xff09; 一、为什么说SDR技术1、sdr 软件无线电2、影视博主的测评方法3、第一个说自己SDR的还是这个老登 二、大疆的图传发展历程1、FPGA AD93632、 P1 自研1、2个DSP和一个CPU A72、音频子系统…

WordPress的安装与简单开发教程

WordPress是目前世界上最受欢迎的开源内容管理系统&#xff08;CMS&#xff09;&#xff0c;它以简便易用、扩展性强和庞大的生态系统著称。通过它&#xff0c;你可以轻松构建博客、企业网站、电子商务平台等多种类型的网站。本文将为你介绍WordPress的安装过程&#xff0c;以及…