lintcode -- 带最小值操作的栈
来源:互联网 发布:网络交友的利弊 编辑:程序博客网 时间:2024/06/05 07:10
实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值。
你实现的栈将支持push,pop 和 min 操作,所有操作要求都在O(1)时间内完成。
注意事项
如果堆栈中没有数字则不能进行min方法的调用
如下操作:push(1),pop(),push(2),push(3),min(), push(1),min() 返回 1,2,1
public class MinStack {
private Stack<Integer> stack;
private Stack<Integer> minStack;//辅助栈
public MinStack() {
stack = new Stack<Integer>();
minStack = new Stack<Integer>();
}
public void push(int number) {
stack.push(number);//先压进栈
if (minStack.empty() == true)
minStack.push(number);
//不为空
else if (minStack.peek() >= number) {
// 这里考虑的相等的情况也会继续push
minStack.push(number);
}
}
public void push(int number){
stack.push(number);
if(minStack.empty() == true){
minStack.push(number);
}
else if(minStack.peek() >= number){
minStack.push(number);
}
}
public int pop() {
if (stack.peek().equals(minStack.peek()) ) {
minStack.pop();
}
return stack.pop();
}
public int min() {
return minStack.peek();
}
}
- 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)
- Java通过JNI调用本地C/C++程序--常用示例
- Console MP3播放器 for C++
- python的学习:导入模块路径、重新加载路径、 is ==、深拷贝和浅拷贝
- 编译器和链接器
- mac os 配置 dock 栏图标显示/隐藏
- lintcode -- 带最小值操作的栈
- ClassPathXmlApplicationContext源码解析四
- 多重背包及优化
- 用vue构建项目笔记1(用vue脚手架创建项目)
- HDU2489 Minimal Ratio Tree 解题报告【图论】【Kruskal】【dfs】
- servlet之request和response报头处理
- ClassPathXmlApplicationContext源码解析五:加载单例
- HDU-2191-悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
- CATIA 鼠标快捷键组合