155. Min Stack
来源:互联网 发布:智能垃圾桶 知乎 编辑:程序博客网 时间:2024/06/03 07:57
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:
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.
分析:使用一个stack,维持一个全局变量min,stack中存储的是当前的值和最小值的差。
public class MinStack { long min; Stack<Long> stack; /** initialize your data structure here. */ public MinStack() { stack = new Stack<Long>(); } public void push(int x) { if(stack.isEmpty()){ stack.push(0l); min=x; }else{ stack.push(x-min); if(x<=min){ min=x; } } } public void pop() { if(stack.isEmpty()) return; if(stack.peek()<=0){ min=min-stack.peek(); } stack.pop(); } public int top() { if(stack.peek()<=0){ return (int)min; }else return (int)(stack.peek()+min); } public int getMin() { return (int)min; }}/** * 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(); */
0 0
- Stack-----155. Min Stack
- LeetCode 155. Min Stack
- 【LeetCode】155.Min Stack
- LeetCode 155.Min Stack
- [leetcode] 155.Min Stack
- [leetcode] 155.Min Stack
- 155. Min Stack
- 155. Min Stack
- Leetcode 155. Min Stack
- 155. Min Stack
- 155. Min Stack LeetCode
- 155. Min Stack
- [LeetCode]155. Min Stack
- 155. Min Stack
- 155. Min Stack
- 155. Min Stack
- LeetCode *** 155. Min Stack
- 【leetcode】155. Min Stack
- 快速自定义的各种想要的上啦刷新下拉加载的view
- nginx配置文件和启动脚本报错
- 哈希表学习资料整理
- 深入学习spring-boot系列(三)--使用thymeleaf模板
- Bootstrap3 代码-内联代码
- 155. Min Stack
- 大数据学习的流程方案
- jQuery验证控件jquery.validate.js使用说明+中文API
- 为何要split大小和block大小是相同的(默认)
- token 验证
- Eclipse中Latex配置
- STM32之GPIO按键实验
- C语言再学习 -- Linux下find命令用法
- CAShapeLayer 自定义圆角