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

[D1,2] 贪心刷题

文章目录

  • 摆动序列
  • 最大子数组合
  • 买卖股票
  • 跳跃游戏
  • 跳跃2

摆动序列

不像是贪心,只要抓住摆动这个点,前一个上升,那下一个就要下降,记录上一次的状态为1的话,那下一次就要更新为-1,如果上一次为1,这次还为1那就说明不是摆动的

最大子数组合

一层循环,如果当前和<=0,那么就将当前值置为0,如果当前和>已经保存的res,那么更新res

买卖股票

可以多次买入卖出
等价公式:3-1 = 3-2+2-1 因此可以直接计算每天的差值,相加就行

跳跃游戏

重点在于

  1. 当前位置i+当前位置可以跳到的最大位置就是判断的依据 cover = max(i+nums[i], cover);
  2. 当前位置i取多少就是循环的结束条件 for(int i=0; i<=cover; i++)

跳跃2

要想明白两个点
一个是 if(i==cur) 和 cur=next;这两句就隐含了跳跃不会超出覆盖范围
一个是如果不按 for(int i=0; i<nums.size(); i++)这个循环来,若使用 i <= cover 作为循环条件,可能会提前终止遍历,从而无法获取完整的信息。例如,后续的某个位置可能只需一次跳跃就能跳到更远的地方,进而减少总的跳跃次数,但由于提前终止遍历,这个信息就会被遗漏。

for(int i=0; i<nums.size(); i++){next = max(next, i+nums[i]);if(i==cur){res++;if(next>=nums.size()-1) break;cur=next;}
}
http://www.dtcms.com/a/177463.html

相关文章:

  • 3、Kafka 核心架构拆解和总结
  • 私网IP地址范围解析与应用指南
  • 低代码 x AI,解锁数智化应用的创新引擎
  • 自组织映射SOM
  • C++_MD5算法
  • Diamond iO:实用 iO 的第一缕曙光
  • Java从入门到精通 - 程序流程控制
  • 数字化转型是往哪转?怎么转?
  • 单调栈原理
  • 数据库系统概论-基础理论
  • 信息安全 -- 什么是侧信道攻击
  • 《[CISCN 2022 初赛]ez_usb》
  • 六级阅读---2024.12 卷一 仔细阅读1
  • C++类对象的隐式类型转换和编译器返回值优化
  • 智能货架守护者:高精度倾角传感器如何重塑仓储安全管理
  • AI恶魔之眼使用说明书
  • 注意力机制(Attention)
  • C语言指针用法详解
  • openstack虚拟机状态异常处理
  • 数据结构、刷leetcode返航版--二分【有序】5/7
  • AI开发playwright tool提示词
  • 读《暗时间》有感
  • 【C++】类和对象【下】
  • Linux 驱动开发步骤及 SPI 设备驱动移植示例
  • chili调试笔记13 工程图模块 mesh渲染 mesh共享边显示实现
  • 藏文智能输入入门实践-简单拼写纠错
  • 【Agent】使用 Python 结合 OpenAI 的 API 实现一个支持 Function Call 的程序,修改本机的 txt 文件
  • 光伏“531”政策倒逼下,光储充一体化系统如何破解分布式光伏收益困局?
  • VMware更改语言设置
  • 使用Go语言对接全球股票数据源API实践指南