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

P1165 日志分析题解

思路分析

这题是典型的栈问题,三种操作

1、0入栈x

2、1出栈

3、2查询最大值

乍一看很简单,定义一个栈,循环判断三种条件进行操作就行了,但是再一看,诶,也不难!哈哈哈哈哈哈,不开玩笑了,对于我这种菜鸡来说还是有必要写一写的,我当时在做这题的时候就在想怎么找到这个最大值?如果我用一个普通的栈,那我每次查询都需要遍历完整个栈,时间复杂度 O(n),但 n 最大 20 万,所以我TLE了。。。如果像之前用一个变量记录当前最大值,出栈时,最大值弹出,我是不知道新的最大值是多少的。

例如:

操作:入库 1, 入库 5, 入库 3
当前最大值 = 5

出库一次 → 3 被弹出
问题:最大值 5 还在栈里吗?如果在,还是 5
但如果之前是这样的:
入库 1, 入库 5, 入库 5, 入库 2
最大值 = 5

出库一次 → 2 被弹出,最大值还是 5
出库一次 → 5 被弹出,此时最大值应该是 5(还剩一个5)

用栈来存储最大值

核心思想:每个元素入库时,同时记录"从栈底到当前位置的最大值"

实际栈: 1 → 5 → 3 → 2
最大值栈: 1 → 5 → 5 → 5

每次查询,直接看最大值栈的顶部即可 O(1)

话不多说,直接上ac代码

#include <iostream> #include <stack> #include <algorithm> using namespace std; int main() { int N; cin >> N; stack<int> stk; // 存放集装箱重量 stack<int> maxStk; // 存放到当前位置的最大值 for (int i = 0; i < N; i++) { int op; cin >> op; if (op == 0) { // 入库 int x; cin >> x; stk.push(x); if (maxStk.empty()) { maxStk.push(x); } else { maxStk.push(max(x, maxStk.top())); } } else if (op == 1) { // 出库 if (!stk.empty()) { stk.pop(); maxStk.pop(); } } else if (op == 2) { // 查询 if (stk.empty()) { cout << 0 << endl; } else { cout << maxStk.top() << endl; } } } return 0; }
http://www.jsqmd.com/news/643028/

相关文章:

  • A股站稳4000点:是反弹起点,还是牛市序幕?
  • 小白5090+cuda12.8复现vision Mamba记录
  • AIAgent架构中的对抗攻击防御体系(2024最新NIST合规框架实测版)
  • 【2026唯一权威指南】:基于217家头部企业实测数据,重构AIAgent可观测性、可审计性、可回滚性三角铁律
  • 2026年口碑好的PVC回收/废料PVC回收用户口碑推荐厂家 - 品牌宣传支持者
  • UniApp里用web-view预览PDF?小心这些性能坑和体验优化点
  • Windows 安装 DeerFlow 2.0
  • CasRel模型镜像免配置亮点:预置中文分词器+标点标准化模块
  • AIAgent安全合规红线预警:SITS2026强制要求的6项LLM交互审计日志规范(含审计模板下载)
  • 小白程序员必备:轻松入门大模型Agent,从概念到实战全解析
  • 从数据点到平滑曲线:拉格朗日插值法的原理与实战
  • 华大MCU实战:HC32F460串口IAP升级中的中断向量表重定向与Flash配置
  • 五大页面置换算法实战对比:从理论到实现的性能优化指南
  • 收藏!小白程序员轻松入门大模型,手把手教你做自己的Agent
  • 租户上下文污染、模型缓存穿透、向量库跨租户泄漏……AIAgent架构中5大隐性隔离漏洞(附可审计的OpenTelemetry追踪模板)
  • 一刻相册批量下载工具|免V不限速·原图无损导出·一键傻瓜操作
  • 关于我的第三次web作业
  • 量子密钥分发(QKD)实战:从BB84协议到Python代码实现
  • 三行代码背后的宇宙:当美军封锁霍尔木兹海峡,你的系统能扛住吗?
  • 科班与非科班,学习编程路径有何不同?
  • 自然语言处理技术在智能客服系统中的应用
  • 手把手教你用MDFEND模型实战微博假新闻检测(附Weibo21数据集下载)
  • 小白必看!大模型Token计费全解析(附省钱技巧收藏版选购指南)
  • 5分钟快速上手iOS虚拟定位:iFakeLocation免费跨平台工具完全指南
  • AI Agent正在重塑就业结构:SITS2026权威团队实证分析27国劳动力变迁数据(2024–2026)
  • 01-18-08 废弃API的处理方式
  • springboot基于SpringBoot的养老中心管理系统_i9o9c8r5
  • GMSSH 是什么?一款面向 AI 时代的可视化服务器运维系统
  • 陕西省 4 月软件开发岗位与政府岗位就业信息
  • 优峰技术:中心波长可调滤波器在光通信测试中的应用与选型