lintcode,带最小值操作的栈
来源:互联网 发布:东华软件股份公司官网 编辑:程序博客网 时间:2024/06/08 19:12
实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值。
你实现的栈将支持push,pop 和 min 操作,所有操作要求都在O(1)时间内完成。
如下操作:push(1),pop(),push(2),push(3),min(), push(1),min() 返回 1,2,1
解题思路:利用两个栈,一个正常存储数据,另一个存储最小数据,每次加入一个数,就在两个栈里都加入一个元素,其中最小栈加入一个当前最小,这样pop的时候两个栈都可以pop,保证minstack顶部一定是最小值。
一刷没ac
二刷ac
public class MinStack { public Stack<Integer> stack; public Stack<Integer> minstack; public MinStack() { stack = new Stack<Integer>(); minstack = new Stack<Integer>(); } public void push(int number) { stack.push(number); if(minstack.isEmpty()){ minstack.push(number); }else { int value = minstack.peek() >= number ? number : minstack.peek(); minstack.push(value); } } public int pop() { minstack.pop(); return stack.pop(); } public int min() { return minstack.peek(); }}
0 0
- LintCode 带最小值操作的栈
- lintcode-带最小值操作的栈-12
- LintCode:带最小值操作的栈
- lintcode,带最小值操作的栈
- lintcode,带最小值操作的栈
- LintCode 12 带最小值操作的栈
- lintcode -- 带最小值操作的栈
- [LintCode]12.带最小值操作的栈
- LintCode-----12.带最小值操作的栈
- lintcode带最小值操作的栈
- Lintcode 12. 带最小值操作的栈
- Lintcode 带最小值的栈
- LintCode-剑指Offer-(12)带最小值操作的栈
- [LintCode] 带最小值操作的栈 Min Stack
- [未解决][lintcode]带最小值操作的栈
- Google/LintCode:M-带最小值操作的栈
- (lintcode)第12题带最小值操作的栈
- [LintCode 12] 带最小值操作的栈(Python)
- AlertDialog对话框-自定义View
- html手机端调用手机相册和摄像头
- Adapter的封装
- Java高并发框架Quasar
- # Linux常用命令 #
- lintcode,带最小值操作的栈
- mac常用shell命令
- python 数据处理中的 LabelEncoder 和 OneHotEncoder
- vim缩进
- writeup-FLAG 实验吧
- Mysql数据库一个字段中存有另一个表中的多ID
- EditPlus 正则表达式 实战_2
- java判断密码强度,判断字符在字符串中出现的次数
- python猜数小游戏