花式模拟【栈结构】做“日志分析”(洛谷P1165题题解,Java语言描述)
题目要求
P1165题目链接
分析
标准的栈结构,但使用数组来模拟会更简单。
因为对于这个问题,其实数组不需要存储真实数值,只考虑当前最大值就行了。
毕竟,出栈也不需要返回当前真实值。
另外,我们只使用懒惰删除,不真实去除。
还有就是模仿C语言的方式,开大数组,避免扩增数组。
这正是具体问题具体分析为解决问题带来的方便之处。
输入数据很大,如果不用BufferedReader就会T掉三个点。
AC代码(Java语言描述)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;public class Main {public static void main(String[] args) throws IOException {int[] f = new int[200001];BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));int num = Integer.parseInt(reader.readLine()), tempNum, pointer = 0;String tempStr;for (int i = 0; i < num; ++i) {tempStr = reader.readLine();switch (tempStr.charAt(0)) {case '0':f[++pointer] = Math.max(f[pointer-1], Integer.parseInt(tempStr.substring(2)));break;case '1':if (pointer > 0) {--pointer;}break;default:System.out.println(f[pointer]);break;}}reader.close();}
}
花式模拟【栈结构】做“日志分析”(洛谷P1165题题解,Java语言描述)相关推荐
- 队列模拟约瑟夫问题(洛谷P1996题题解,Java语言描述)
题目要求 P1996题目链接 分析 以前就研究过"约瑟夫环"问题: <单循环链表求解约瑟夫环问题(Java语言描述)> <杀人游戏~约瑟夫环(洛谷P1145题题解 ...
- 线性存储的最短平均检索时间(洛谷P1253题题解,Java语言描述)
题目要求 P1253题目链接 分析 很像 ~洛谷P1223题题解~,也是一种类似SJF的贪心法. 排个序,由于两个不大于10000的数,乘起来还是int,就使用int属性吧. 数据量小,所以Scann ...
- [计数排序]统计三个数和的[最大概率](洛谷P2911题题解,Java语言描述)
题目要求 P2911题目链接 分析 我用暴力思想做的,对每种和进行计数. 暴力的基本思想是计数排序,开一个数组,计数最后按照要求得到结果. 遍历的过程就很暴力哈哈哈-- 这位大神用期望做的,Orz → ...
- 基于栈的后缀表达式求值(洛谷P1449题题解,Java语言描述)
题目要求 P1449题目链接 分析 给出后缀表达式求值,就相当于没了括号,而且很直接. 我们需要使用栈结构来完成任务. Java原装的栈使用了很多synchronized,导致性能不佳,但我们也就将就 ...
- [Catalan]求解随机出栈可能数(洛谷P1044题题解,Java语言描述)
题目要求 P1044题目链接 分析 题意就是:N个数依次进栈,可随机出栈,算一下可能的出栈序列数. 其实这个就是Catalan啊,如果数据结构与算法有一定的刷题积累的学生应该经常做这样的About栈的 ...
- 模拟DNF放技能的蓝耗问题(洛谷P2006题题解,Java语言描述)
题目要求 P2006题目链接 分析 看来出题人喜欢DNF啊,还对蓝充足颇为渴求 (废话,没蓝干甚) -- 这题貌似水题,但AC率不高,因为有坑诶-- 首先是耗蓝为0的时候,伤害还是打的出来的(参考平A ...
- 麦森数(洛谷P1045题题解,Java语言描述)
题目要求 题目链接 分析 这题挺经典的,快速幂取模算法,如果求出大数再取模就可能T掉. 之前有篇文章写了这个算法:<快速幂算法详解&&快速幂取模算法详解> 既然是Java, ...
- 枚举求解单词方阵(洛谷P1101题题解,Java语言描述)
题目要求 P1101题目链接 分析 可以用DFS做,但我立下了个Flag,所以就用了朴素的枚举来做.... 结果,我的天哪,做了好几个小时-- 其实这种地图题,真的适合 DFS or BFS or D ...
- 求子集元素之和(洛谷P2415题题解,Java语言描述)
题目要求 P2415题目链接 分析 这题我觉得--当个数学题做就好了嘛. 有一个数N的情况:result = 1 * N 有两个数N1.N2的情况:result = 2 * (N1+N2) 有三个数N ...
最新文章
- 一个 SpringBoot 项目该包含哪些?
- android 中自定义安装,AndroidStudio 自定义配置
- 简单介绍python迭代器和生成器
- Linux workqueue工作原理
- centos mysql 访问_centos下mysql开启远程访问
- 461在全志r16平台tinav3.0系统下使用地磁计QMC5883L
- 判断按键值_ALIENTEK 阿波罗 STM32F767 开发板资料连载第七章 按键输入实验
- PHP javascript 值互相引用(不用刷新页面)
- android 7.0 解锁亮屏,Android7.0亮屏流程分析
- TeamCity+Rancher+Docker实现.Net Core项目DevOps(目前成本最小的DevOps实践)
- latex max下面标注怎么写
- android定位坑简书,android webview 定位问题
- ajax性能测试脚本,mqtt性能测试工具
- Hive:用SQL对数据进行操作,导入数据、清洗脏数据、统计数据订单、优化结果输出等等
- 【读书】2020年阅读记录
- Warshall 算法(离散数学传递闭包)
- 如何编写无法维护的代码
- 第三章习题2存款利息的计算
- 迷你Web文件服务器
- ardl模型stata命令_Stata新命令快讯: 有向无环图、模糊倍分法等
热门文章
- windows中使用scrapyd遇到的问题
- 如何获取用户当前详细的地理位置
- container-with-most-water(最大蓄水问题)
- php使用redis存储
- 《BI那点儿事》三国数据分析系列——蜀汉五虎上将与魏五子良将武力分析,绝对的经典分析...
- java frame清除控件_java – 清除JFrame的组件并添加新组件
- mysql不兼容_mysql5.7 不兼容问题
- jspx格式手机打开_制作手机浏览器显示格式的HTML页面
- git master代码被删除 怎么恢复_git 分支的删除与恢复
- 移动端拖拽排序 html,移动端拖拽排序