155. Min Stack
2016-05-10 16:43
197 查看
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.
Example:
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.
Example:
MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0); minStack.push(-3); minStack.getMin(); --> Returns -3. minStack.pop(); minStack.top(); --> Returns 0. minStack.getMin(); --> Returns -2. 【思路】两个栈实现,其中一个存入最小值。 class MinStack { public: /** initialize your data structure here. */ MinStack() { } void push(int x) { stk.push(x); if(minstk.empty()||x <=minstk.top()) minstk.push(x); } void pop() { if(stk.top()==minstk.top()) { stk.pop(); minstk.pop(); }else stk.pop(); } int top() { return stk.top(); } int getMin() { return minstk.top(); } private: stack<int> stk; stack<int> minstk; }; /** * Your MinStack object will be instantiated and called as such: * MinStack obj = new MinStack(); * obj.push(x); * obj.pop(); * int param_3 = obj.top(); * int param_4 = obj.getMin(); */
相关文章推荐
- WebAPP与原生APP的交互设计区别
- javascript关于继承解析
- JS判断字符是否为数字类型
- Jframe设置
- 安卓dex的编译和反编译
- 分布式设计与开发(三)------高一致性服务ZooKeeper
- ListView性能优化
- 面向对象的六大原则
- java多线程join
- magento 属性与属性集配置attributes
- 超详细的prim算法
- maven 仓库收到导入jar包
- 2016.5.10
- SQL中NVL函数的用法
- 将功补过 树形动态规划
- android apk反编译
- 基于STM32F4的四轴航拍飞行器(开源)
- 树莓派设置静态无线IP以及去掉启动时的dhcpcd
- html5-localStorage本地存储和SQLLite本地数据库
- Maven与Sonar配合使用