213.贪心算法:跳跃游戏||(力扣)

news/2024/10/6 23:57:38/

class Solution {
public:int jump(vector<int>& nums) {if (nums.size() == 1) return 0; // 如果数组长度为1,已经在终点,不需要跳跃int cur = 0;   // 当前跳跃能到达的最远位置int flag = 0;  // 记录跳跃次数int next = 0;  // 下一次跳跃能到达的最远位置for (int i = 0; i < nums.size(); i++){next = max(i + nums[i], next); // 更新下一次跳跃能到达的最远位置if (i == cur) // 当遍历到当前跳跃的最远位置时{flag++;   // 增加跳跃次数cur = next; // 更新当前跳跃的最远位置if (next >= nums.size() - 1) break; // 如果下一次跳跃能到达终点,结束循环}}return flag; // 返回跳跃次数}
};

核心思想

该算法使用贪心策略,每次选择当前能跳跃的最远位置,并更新下一次能跳跃的最远位置。遍历过程中,每当到达当前能跳跃的最远位置时,增加跳跃次数,并更新当前跳跃能到达的最远位置。如果在更新过程中,发现能到达或超过终点,跳出循环。

示例

考虑 nums = [2, 3, 1, 1, 4]

  • 初始 cur = 0flag = 0next = 0
  • 第一次循环:
    • i = 0next = max(0 + 2, 0) = 2
    • i == cur,跳跃次数增加:flag = 1,更新 cur = next = 2
  • 第二次循环:
    • i = 1next = max(1 + 3, 2) = 4
    • i == cur,跳跃次数增加:flag = 2,更新 cur = next = 4
    • 终点可达,跳出循环

最终返回 flag = 2,表示最少需要跳跃两次。


http://www.ppmy.cn/news/1474067.html

相关文章

linux查看系统配置

要查看Linux系统的配置&#xff0c;以下是几种不同的实现方法&#xff1a; 使用命令行工具lsb_release来查看Linux发行版的详细信息。可以在终端输入以下命令&#xff1a; lsb_release -a这将显示操作系统的发行版本号、描述等信息。 使用uname命令可以获取有关内核和操作系…

linux screen

计算机最开始只有黑白界面,我们通过键盘设备输入字符进行编程等行为进行编程, 让计算机完成我们设定的任务. 随着计算机技术及硬件的发展, 黑白屏幕被图形界面替代, 应用程序的 GUI 界面操作成为主流, 只有远程终端由于带宽占用少,实时性高等优点一直存在到现在. 然后有时由于网…

行业事故---语雀

文章目录 时间线剖析心得 时间线 根据公告中关于故障的时间点梳理如下&#xff1a; 14:07 数据存储运维团队收到监控系统报警&#xff0c;定位到原因是存储在升级中因新的运维工具 bug 导致节点机器下线&#xff1b;14:15 联系硬件团队尝试将下线机器重新上线&#xff1b;15:…

力扣139 单词拆分 Java版本

文章目录 题目描述代码 题目描述 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。 注意&#xff1a;不要求字典中出现的单词全部都使用&#xff0c;并且字典中的单词可以重复使用。 示例 1&#xff1a…

基于Hadoop平台的电信客服数据的处理与分析③项目开发:搭建Kafka大数据运算环境---任务12:安装Kafka

任务描述 任务内容为安装和配置Kafka集群。 任务指导 Kafka是大数据生态圈中常用的消息队列框架 具体安装步骤如下&#xff1a; 1. 解压缩Kafka的压缩包 2. 配置Kafka的环境变量 3. 修改Kafka的配置文件&#xff0c;Kafka的配置文件存放在Kafka安装目录下的config中 4. 验证…

jenkins在使用pipeline时,为何没有方块形视图

项目场景&#xff1a; 安装完Jenkins时后&#xff0c;通过pipeline创建的项目任务。 问题描述 在立即构建后&#xff0c;没有显示每个阶段的视图。 原因分析&#xff1a; 原因是&#xff0c;刚安装的Jenkins&#xff0c;这个视图不是Jenkins自带的功能&#xff0c;而必须安装…

上位机图像处理和嵌入式模块部署(mcu项目2:串口日志记录器)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 淘宝上面有一个商品蛮好玩的&#xff0c;那就是日志记录器。说是记录器&#xff0c;其实就是一个模块&#xff0c;这个模块的输入是一个ttl串口&am…

面试数据岗必知必会——元数据与开窗函数

1. 元数据 元数据&#xff08;Metadata&#xff09;是指用来描述其他数据的数据&#xff0c;即“data about data”。它是关于数据的组织、数据域及其关系的信息&#xff0c;旨在提供对数据的理解和管理所需的关键背景和上下文。元数据可以帮助人们了解数据的来源、创建时间、…