Min Stack (Java)
来源:互联网 发布:淘宝论文修改多少钱 编辑:程序博客网 时间:2024/06/10 18:54
Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.
- push(x) -- Push element x onto stack.
- pop() -- Removes the element on top of the stack.
- top() -- Get the top element.
- getMin() -- Retrieve the minimum element in the stack.
getMin函数要求返回当前栈中最小值,而又有push又有pop,一旦入栈的所有元素中的最小值被pop出后,用变量min很难记录当前栈中的次小值,不适于动态的场景,所以要设计一个栈来记录当前最小的值。一旦这个值被弹出,对应的记录栈中的元素也相应被弹出。
Source
class MinStack { Stack<Integer> a = new Stack<Integer>();Stack<Integer>minA = new Stack<Integer>();public void push(int x){if(minA.isEmpty()){minA.push(x);}else if(minA.peek() >= x){ //注意等于的时候也要入栈minA.push(x);}a.push(x);//System.out.println(a.peek());}public void pop(){if(!minA.isEmpty() && a.peek().equals(minA.peek())){//isEmpty的返回值是布尔型minA.pop();}if(!a.isEmpty()) a.pop();}public int top(){return a.peek();//peek()返回栈顶元素}public int getMin(){if(!minA.isEmpty())return minA.peek();return 0;}}
Test
public static void main(String[] args){MinStack s = new MinStack();s.push(2);s.push(4);s.push(5);s.push(3);s.push(6);s.pop();s.pop();s.pop();System.out.println(s.getMin());}
0 0
- Min Stack Java
- Min Stack (Java)
- Leetcode [Min Stack] java
- LeetCode|Min Stack-java
- (java)Min Stack
- 155. Min Stack(java)
- Min Stack (JAVA实现)
- LeetCode 155 : Min Stack (Java)
- 【LeetCode-Java】155. Min Stack
- min stack
- Min Stack
- Min Stack
- Min Stack
- Min Stack
- Min Stack
- Min Stack
- Min Stack
- Min Stack
- 黑马程序员——Objective-C内存管理机制——黑马 IOS 技术博客
- Java面向对象(三)
- 冬至作于厦门
- 一个日历问题的C语言,C++(boost),python,Javascript,Java和Matlab的实现
- SQL小记
- Min Stack (Java)
- Nginx配置之基于域名的虚拟主机
- [免费参加] 2015微软社区大课堂Community Camp开放报名啦!
- 外观模式(Facade) - 为系统分层次
- 【浅墨Unity3D Shader编程】之五 圣诞夜篇: Unity中Shader的三种形态对比&混合操作合辑
- GCC 编译选项
- Max Sum
- 黑马程序员——Objective-C的内存管理MRC与ARC——黑马 IOS 技术博客
- 4.映射对象标识符