[leetcode]Min Stack
来源:互联网 发布:filter() 数组 编辑:程序博客网 时间:2024/06/05 09:34
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.
这道题要实现堆栈的一些操作,但要求O(1)的时间复杂度。看了discuss 才知道用一个额外的堆栈来维护最小值。感觉是一种比较普遍的方法:用算法的空间复杂度来换取时间复杂度
class MinStack {public: vector<int> a; vector<int> min; int top() { return a[a.size()-1]; } void push(int x) { a.push_back(x); if(min.empty()||(!min.empty() && min[min.size()-1] >= x)){ min.push_back(x); } } void pop() { if(!a.empty()){ if(a[a.size()-1]==min[min.size()-1]) min.pop_back(); a.pop_back(); } } int getMin() { if(!min.empty()) return min[min.size()-1]; }};
0 0
- LeetCode[stack]: Min Stack
- [leetcode][stack] Min Stack
- 【Leetcode】Min Stack
- Leetcode: Min Stack
- leetcode Min stack
- Min Stack -- LeetCode
- Leetcode: Min Stack
- 【LeetCode】Min Stack
- leetcode Min Stack
- leetcode--Min Stack
- [Leetcode]Min stack
- leetcode:Min Stack
- leetcode 之 Min Stack
- leetcode Min Stack
- LeetCode(155) Min Stack
- [LeetCode]Min Stack
- leetcode:Min Stack
- leetcode - Min Stack
- OC学习小结之Foudation -NSString
- #一周五# win10通用平台,无处不在的Xamarin,msbuild开源,MVP卢建晖的Asp.NET 5系列 (视频)
- 【数据结构】二叉查找树
- c++第一题20150321
- POJ 2370 Democracy in Danger
- [leetcode]Min Stack
- OpenGL入门10——颜色混合
- Next Permutation
- NSBundle mainBundle] pathForResource 返回nil的解决办法
- Android Layout inflater
- 求三个正整数中的最大数
- git
- QT中setLayout无效的问题
- error:could not open ...jvm.cfg解决方法