news 2026/4/15 4:41:17

P1165 日志分析题解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 4:41:12

安防场景的技术架构:从“被动监控”到“主动防御”的演进之路

随着数字化转型的深入&#xff0c;安防场景已不再是简单的“摄像头录像机”组合。传统安防面临被动监控、响应滞后、数据割裂三大核心痛点&#xff0c;难以应对日益复杂的安全威胁。现代安防技术架构正经历从“事后追溯”向“事前预判、事中干预”的根本性转变&#xff0c;形成…

作者头像 李华
网站建设 2026/4/15 4:40:11

如何高效封装蓝光视频?tsMuxer一站式无损格式转换方案

如何高效封装蓝光视频&#xff1f;tsMuxer一站式无损格式转换方案 【免费下载链接】tsMuxer tsMuxer is a transport stream muxer for remuxing/muxing elementary streams, EVO/VOB/MPG, MKV/MKA, MP4/MOV, TS, M2TS to TS to M2TS. Supported video codecs H.264/AVC, H.265…

作者头像 李华
网站建设 2026/4/15 4:32:11

13_主流低代码平台深度对比:简道云、宜搭、LowCodeEngine技术选型

主流低代码平台深度对比&#xff1a;简道云、宜搭、LowCodeEngine技术选型 摘要&#xff1a;市场上低代码平台众多&#xff0c;如何选择适合自身业务需求的平台&#xff1f;本文深度对比简道云、钉钉宜搭、阿里LowCodeEngine三大主流低代码平台&#xff0c;从架构设计、产品定位…

作者头像 李华
网站建设 2026/4/15 4:30:33

访问管理化技术身份验证与单点登录实现

访问管理化技术&#xff1a;身份验证与单点登录的革新实践 在数字化时代&#xff0c;企业信息系统日益复杂&#xff0c;如何高效、安全地管理用户访问权限成为关键挑战。访问管理化技术通过集中化的身份验证与单点登录&#xff08;SSO&#xff09;实现&#xff0c;不仅提升了用…

作者头像 李华
网站建设 2026/4/15 4:29:11

技术面必问:你有什么缺点

文章目录前言一、先搞懂&#xff1a;面试官问「你有什么缺点」到底想干嘛&#xff1f;二、绝对不能说的3类「自杀式回答」&#xff08;2026年黑名单&#xff09;1. 完全假大空的「伪缺点」2. 触及岗位核心能力的致命缺点3. 负能量爆棚、态度问题的缺点三、2026年最安全、最通用…

作者头像 李华