[Leetcode 155, Easy] Min Stack
来源:互联网 发布:u盘重装centos 编辑:程序博客网 时间:2024/05/17 04:11
Problem:
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.
The basic idea does not comes from me. In this stack-like structure, we keep two stacks, one for all elements inserts by their original order, and the other one is for the local minimum one compared with elements before it. If the minimum element is not the last one inserted into the stack, and those ones after it are larger than it, the minimum element will not change. (i.e., the top element of the minimal value stack will not change.)
The minimum comes from the min-stack. When the minimun element is removed from the stack, it will be removed from the min-stack either. It is easy to see that the remained elements also abide by the rules set in the last paragraph. The stack-like structure works fine.
Note: If the size of inputed elements is big, the vector is not safe because its way of increasing size. (Important!!!)
Solutions:
C++:
void push(int x) { data.push(x); if(mindata.empty()||mindata.top()>=x) mindata.push(x); } void pop() { if(mindata.top()==data.top()) mindata.pop(); data.pop(); } int top() { return data.top(); } int getMin() { return mindata.top(); } private: stack<int> data; stack<int> mindata;
Java:
Python:
- [Leetcode 155, Easy] Min Stack
- 【Leetcode-Easy-155】 Min Stack
- Easy 155题 Min Stack
- Leetcode 155. Min Stack (Easy) (cpp)
- LeetCode-Easy刷题(33) 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
- LeetCode[155]-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
- 社説 20150125 年金給付水準 非正規や将来世代の改善図れ
- 【BZOJ 3097】 Hash Killer I
- 自定义的404页面在IE中无法显示
- Redis研究(十六)—发布/订阅模式
- 社説 20150125 欧州の量的緩和 政策協調強めてデフレ回避を
- [Leetcode 155, Easy] Min Stack
- 【专题】 - 数组元素操纵探索 - 黑马程序员
- 哈希的一种用法——判断相等
- 减少if语句的嵌套层次,提高代码的可读性
- 译文 日经春秋 20150125
- struts2+MySQL+jfreechart生成带热点
- USACO 2.1 Ordered Fractions
- 黑马程序员--锁
- json