能返回最大值的栈
来源:互联网 发布:抠图软件 mac版 编辑:程序博客网 时间:2024/06/07 06:53
Stack with max. Create a data structure that efficiently supports the stack operations (push and pop) and also a return-the-maximum operation. Assume the elements are reals numbers so that you can compare them.
Use two stacks, one to store all of the items and a second stack to store the maximums.
public class StackWithMax { private Stack<Integer> s = new Stack<>(); private Stack<Integer> maxVal = new Stack<>(); private int max = -100000; public Integer pop() { maxVal.pop(); return s.pop(); } public void push(Integer item) { if(item > max){ max = item; } s.push(item); maxVal.push(max); } public Integer getMax(){ return maxVal.first(); }}
如果不想用已经实现好的栈,可以自己实现栈,如果是用数组来实现栈,可以在该类中多加一个数组Max,用来保存到目前为止栈中元素的最大值。返回最大值的时候,直接返回max的最后一个元素即可,与上边的方法原理相同。
编程之美236页3.7队列取最大值操作也提供了另一种方法,不过笔者认为既然都是新申请了空间,没有这种方法来的直观,推荐这种方法。
如果实现了栈中取最大值的程序,那么就可以实现队列中取最大值元素的方法,因为队列可以用两个栈来实现。http://blog.csdn.net/u014110320/article/details/77677242
阅读全文
0 0
- 能返回最大值的栈
- T-SQL 返回多个列的最大值
- 使用返回指针的函数查找最大值
- 返回数组中的小数组的最大值
- mybatis怎么返回某列的最大值
- 模拟O(1)能返回最小值的栈
- Min Stack:实现能返回最小值的栈
- C++中类型空间及所能存储的最大值
- C++中获取一个原生数据类型能表示的最大值
- 返回数组中的最大值
- 返回数组最大值
- 在WCF中能返回的类型
- 能上下拖拉返回的listview
- 返回最大值所在行的几种方式比较
- sas vname 返回最大值对应的变量名
- 实现队列的MAX函数:返回队列中的最大值
- 检查任意数目的整型参数并返回最大值
- 返回map中最大值value及其对应的key
- textarea自适应内容高度
- Java学习笔记-注释
- 如何使用nmon监控Linux系统性能
- lucene原理及java实现
- 批量读取文本文件并生成自己的肖像词云
- 能返回最大值的栈
- 04:带余除法
- SQL Server 扩展属性
- 《C++ Primer》第五版课后习题解答_第四章(1)(01-20)
- oracle中union和union all的查询速度
- javascript中toFixed()方法详解
- 微信小程序为教育行业带来哪些新思考?
- Windows环境变量Path、ClassPath、JAVA_HOME的作用
- 了解 JavaScript 中的内置对象