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

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.mzph.cn/news/869302.shtml

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

相关文章

0302GPIO外设输入功能

GPIO外设输入功能 输入部分硬件电路按键简介传感器模块简介按键和传感器模块的硬件电路 C语言的学习C语言数据类型宏定义typedef结构体枚举C语言知识总结 按键控制LED灯&光敏传感器蜂鸣器GPIO总结GPIO使用方法总结模块化编程的方法&#xff1a; 两个程序&#xff1a;按键控…

PostgreSQL 里怎样解决多租户数据隔离的性能问题?

文章目录 一、多租户数据隔离的性能问题分析&#xff08;一&#xff09;大规模数据存储和查询&#xff08;二&#xff09;并发访问和锁争用&#xff08;三&#xff09;索引维护成本高&#xff08;四&#xff09;资源分配不均 二、解决方案&#xff08;一&#xff09;数据分区&a…

(C++哈希02) 四数相加 赎金信

454、四数相加II 用两个for循环记录前两个数组元素两两之间的和&#xff0c;再用两个for循环记录后两个数组元素两两之间的和&#xff0c;四数相加就简化为两数相加&#xff0c;用map来查找结果 class Solution { public:int fourSumCount(vector<int>& nums1, vec…

计算理论复习

1.Turing Machine 确定性图灵机 图灵机有很多不同的定义&#xff0c;这里选取其中一种&#xff0c;其它定义下的图灵机往往与下面这种定义的图灵机计算能力等价。 图灵机是一个在一条可双向无限延伸且被划分为若干格子的纸带上进行操作的机器&#xff0c;其有内部状态&#…

Springboot项目实训--day2

今天学习的是idea和MySQL的连接&#xff0c;以及一些基本的增删改查的功能实现。 一、软件下载 昨天下载了idea&#xff0c;今天要是西安它们的连接&#xff0c;就需要再下载MySQL&#xff0c;我的MySQL是前面几个学期别人帮忙下载的&#xff0c;所以具体的操作步骤我也不清楚…

基于Java+SpringMvc+Vue技术的智慧校园系统设计与实现

博主介绍&#xff1a;硕士研究生&#xff0c;专注于信息化技术领域开发与管理&#xff0c;会使用java、标准c/c等开发语言&#xff0c;以及毕业项目实战✌ 从事基于java BS架构、CS架构、c/c 编程工作近16年&#xff0c;拥有近12年的管理工作经验&#xff0c;拥有较丰富的技术架…

3-6 构建线性模型解决温度计示数转换问题

3-6 构建线性模型解决温度计示数转换问题 直接上源码 %matplotlib inline import numpy as np import torch torch.set_printoptions(edgeitems2, linewidth75)导入必要的库并设置 PyTorch 的打印选项&#xff0c;确保在打印张量时显示边缘项和行宽。 #%% t_c [0.5, 14.0,…

考研408-数据结构(上机) --华中科技大学

3592. 矩阵转置 - AcWing题库 输入一个 &#x1d441;&#x1d441; 的矩阵&#xff0c;将其转置后输出。 #include<bits/stdc.h>using lllong long; using aristd::array<int,3>; using PIIstd::pair<int,int>;#define fir first #define sec secondconst i…

window.matchMedia

matchMedia() 返回一个新的 MediaQueryList 对象&#xff0c;表示指定的媒体查询字符串解析后的结果。 const width ref(); const myFunction (x) > {if (x.matches) {// 媒体查询document.body.style.backgroundColor "yellow";width.value "yellow&quo…

finalize()方法

finalize() 当对象被回收时&#xff0c;系统自动调用该对象的finalize方法。子类可以重写该方法&#xff0c;做一些释放资源的操作&#xff1b;什么时候被回收&#xff0c;当某个对象没有任何引用时&#xff0c;则jvm就认为这个对象是一个垃圾对象&#xff0c;就会使用垃圾回收…

alibabacloud学习笔记11

讲解什么是配置中心及使用前后的好处 讲解Nacos作为配置中心面板介绍 官方文档 Nacos config alibaba/spring-cloud-alibaba Wiki GitHub 加入依赖&#xff1a; 订单服务和视频服务也加上这个依赖。 讲解Nacos作为配置中心实战 订单服务添加配置。 我们注释掉之前的配置。 …

乐鑫ESP-NOW与Wi-Fi SoC方案家居设备无缝连接,启明云端乐鑫代理商

随着科技的不断进步&#xff0c;智能家居逐渐成为现代生活的一部分。ESP-NOW技术以其独特的无线通信能力&#xff0c;为智能家居领域带来了一场革命。 ESP-NOW是一种由乐鑫定义的无线通信协议&#xff0c;它能够在无需路由器的情况下&#xff0c;实现设备间的直接、快速、低功…

事务性数据系统中复制与 S3 Express One Zone 的成本分析

原文链接&#xff1a;https://jack-vanlightly.com/blog/2024/6/10/a-cost-analysis-of-replication-vs-s3-express-one-zone-in-transactional-data-systems作者&#xff5c;Jack Vanlightly AutoMQ 导读 随着 S3 在构建现代化数据基础设施的流行&#xff0c;广大 data in…

【免费的车间数据监控大屏】车间管理的新利器,让生产效率一目了然

面对生产车间里各种繁杂的数据&#xff0c;你不会还在用Excel敲击一个个无聊的数据吧&#xff1f;怎么不试试生动形象的车间数据看板呢&#xff1f; 在繁忙的车间里&#xff0c;每一寸空间都跳动着生产的脉搏&#xff0c;而车间数据监控看板&#xff0c;就像是这个舞台上的“智…

注解复习(java)

文章目录 注解内置注解**Deprecated**OverrideSuppressWarnings【不建议使用】Funcationallnterface 自定义注解元注解RetentionTargetDocumentedInherited 和 Repeatable 反射注解 前言&#xff1a;笔记基于动力节点 注解 注解可以标注在 类上&#xff0c;属性上&#xff0c…

opencv颜色识别,hsv采用滑块调节

识别效果如图所示&#xff0c;尽量排除了蓝色背景的干扰&#xff0c;hsv可用滑块进行调节&#xff0c;更加方便 import cv2 import numpy as np# 创建一个命名窗口&#xff0c;用于显示滑块 cv2.namedWindow("TrackBar")def nothing(x):pass# 创建滑块控件 cv2.cre…

Python深度学习

原文链接&#xff1a;Python深度学习https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247608512&idx1&sn16e2a0bb6b0a1f6b513be173730090c0&chksmfa826927cdf5e031b702deb04eef5cb0055f65b0d6e4c33588949ee81c7380ee044caeafd8c7&token2068755524&am…

Python中的格式化输出

在Python编程中&#xff0c;格式化输出是一个常见的需求&#xff0c;通过不同的方法&#xff0c;我们可以将变量值以特定的格式显示出来。本文将介绍Python中四种常用的格式化输出方法&#xff0c;包括百分号&#xff08;%&#xff09;格式化、str.format()方法、f字符串&#…

arp缓存中毒实验

文章目录 一、相关知识1.什么是arp&#xff08;地址解析协议&#xff09;2.什么是免费arp&#xff08;1&#xff09;简介&#xff08;2&#xff09;主要应用&#xff08;3&#xff09;代码 3.什么是arp缓存中毒&#xff08;1&#xff09;简介&#xff08;2&#xff09;过程&…

整车行业APS项目难点(我的APS项目九)

一、成功案例少&#xff0c;从业人员少&#xff0c;顾问经验少。 二、服务器架构基本全自研&#xff0c;试错过程长&#xff0c;但生产环境对架构要求高。 三、数据体量大&#xff08;包含产品BOM&#xff09;&#xff0c;对数据质量要求极高、配置BOM技术壁垒高。 四、AI算…