带最小值操作的栈
来源:互联网 发布:生活的真相 知乎 编辑:程序博客网 时间:2024/05/27 20:52
带最小值操作的栈
实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值。你实现的栈将支持push,pop 和 min 操作,所有操作要求都在O(1)时间内完成。
主要需要解决在O(1)的复杂度下完成min()操作;引入一个辅助栈,每次进栈操作的同时,将当前最小值加入辅助栈.min()函数取扶住栈栈顶元素.
import java.util.Stack;public class MinStack { public Stack<Integer> min; public Stack<Integer> data; public MinStack() { // do initialize if necessary min = new Stack<Integer>(); data = new Stack<Integer>(); } public void push(int number) { // write your code here if (data.empty()) { data.push(number); min.push(number); } else { int tmp = min.peek(); data.push(number); if (number < tmp) { min.push(number); } else { min.push(tmp); } } } public int pop() { // write your code here min.pop(); return data.pop(); } public int min() { // write your code here return min.peek(); }}
0 0
- 带最小值操作的栈
- 带最小值操作的栈
- 带最小值操作的栈
- 带最小值操作的栈
- 带最小值操作的栈
- 带最小值操作的栈
- 带最小值操作的栈
- LintCode 带最小值操作的栈
- lintcode-带最小值操作的栈-12
- 题目:带最小值操作的栈
- LintCode:带最小值操作的栈
- lintcode,带最小值操作的栈
- lintcode,带最小值操作的栈
- LintCode 12 带最小值操作的栈
- 实现带最小值操作的栈
- lintcode -- 带最小值操作的栈
- [LintCode]12.带最小值操作的栈
- LintCode-----12.带最小值操作的栈
- 完美微分电路的理解
- linux(ubuntu)管理用户和用户组
- 205. Isomorphic Strings
- java面试宝典读书笔记(五)-涉及数据结构
- Android之省市区三级联动
- 带最小值操作的栈
- vSphere与Workstation虚拟机交互
- 【mysql】执行SQL脚本
- 蘑菇街Android客户端HotFix探索之路
- lua脚本语法
- Hadoop简单java算法文件执行步骤
- android adb命令安装和删除apk应用
- MySQL必知必会-12MySQL联结表
- 数据结构实验之链表四:有序链表的归并