LeetCode 155. Min Stack 题解
来源:互联网 发布:淘宝外卖粮票怎么刷 编辑:程序博客网 时间:2024/05/14 23:38
题目链接:点击打开链接
思路:本题的push、pop、top都可以直接使用java自带的stack实现。关键在于如何实现getMin()方法。
使用两个栈,第一个栈正常保存全部数据,第二个栈只保存数据中的“不升序”序列,这其中的奥妙需要自行体会一下.....
Java 参考代码如下:
import java.util.Stack;public class MinStack {Stack<Integer> stack;Stack<Integer> minStack;/** initialize your data structure here. */public MinStack() {stack = new Stack<Integer>();minStack = new Stack<Integer>();}public void push(int x) {stack.push(x);// 第二个条件之所以是<= 而不是 <, 是因为对于push(0,3,0,2) pop(2,0)这种情况,// 如果是<号,则获取最小值会出错if (minStack.isEmpty() || x <= minStack.peek()) {minStack.push(x);}}public void pop() {int popNum = stack.peek();if (!stack.isEmpty()) {stack.pop();}// 第二个判断条件,之所以是==而不是 <=,是因为stack.peek不可能比minStack.peek小,// 否则在该栈顶元素push入栈的时候,它就会被压到minStack的栈顶....if (!minStack.isEmpty() && popNum == minStack.peek()) {minStack.pop();}}public int top() {return stack.isEmpty()?0:stack.peek();}public int getMin() {return minStack.isEmpty()?0:minStack.peek();}}
0 0
- Leetcode题解 155. Min Stack
- LeetCode 155. Min Stack 题解
- 【Leetcode 题解】Min Stack
- LeetCode - Min Stack 题解
- LeetCode题解:Min Stack
- LeetCode题解:Min Stack
- LeetCode 题解(217) : Min Stack
- LeetCode 155. Min Stack
- 【LeetCode】155.Min Stack
- LeetCode 155.Min Stack
- [leetcode] 155.Min Stack
- [leetcode] 155.Min Stack
- Leetcode 155. Min Stack
- 155. Min Stack LeetCode
- [LeetCode]155. Min Stack
- LeetCode *** 155. Min Stack
- 【leetcode】155. Min Stack
- LeetCode 155. Min Stack
- CSS水平垂直居中
- HTTPS详解
- JAVA网页图片验证码的实现
- 深入理解HTTP协议
- LINUX 下面不同主机远程拷贝文件 scp 命令的使用
- LeetCode 155. Min Stack 题解
- 5G网络一旦正式商用
- Servlet 3.0 新特性详解
- UEFI模式下,Windows 10专业版 和 Ubuntu 16.0.4 LTS双系统安装以及注意事项
- SOJ 1018
- PHP:判断PHP是否成功连接数据库
- 12款程序员们最爱的Bootstrap模板
- Nginx搭建反向代理服务器过程详解
- 【一些链接】