【Leetcode】最小栈
来源:互联网 发布:报表类软件 编辑:程序博客网 时间:2024/06/08 08:36
在栈结构加一个返回最小值的方法。
原理是每一次push一个差值x-min,可以记录上一次的最小值。如果x小于上一次的min,就更改min。同时在pop的时候,要看栈顶是否是最小值,如果是,那么pop了以后就需要更新最小值为x+min。
public class MinStack {Stack<Integer> stack;int min; /** initialize your data structure here. */ public MinStack() { stack = new Stack<Integer>(); } public void push(int x) { if(stack.isEmpty()){ min = x; stack.push(x - min); }else{ stack.push(x - min); if(min > x) min = x; } } public void pop() { if(stack.isEmpty()) return; int v = stack.pop(); if(v < 0) min = min - v; } public int top() { int top = stack.peek(); if(top < 0) return min; else return top + min; } public int getMin() { return min; }}
阅读全文
0 0
- 【Leetcode】最小栈
- leetcode Min Stack 最小栈
- leetcode Min Stack 最小栈
- [LeetCode] - Min Stack O(1)最小栈
- LeetCode 155 Min Stack(最小栈)
- LeetCode 155. Min Stack(最小栈)
- 【Leetcode】最小 subsetsum
- leetcode 155. Min Stack 最小栈的实现
- LeetCode -- 查找最小公共祖先
- LeetCode Move Zeroes 最小堆
- LeetCode最小的k个数
- leetcode 二叉树最小深度
- leetcode求栈中最小的元素
- 最小栈
- 最小栈
- 最小栈
- [leetcode]Min Stack (获取栈的最小元素C语言实现)
- 【LeetCode-面试算法经典-Java实现】【155-Min Stack(最小栈)】
- web.xml中webAppRootKey
- my eclipse 安装方编译插件
- HashTable、HashSet和Dictionary的区别
- 1008 电梯
- tbschedule3.3.3+spring+maven实例教程
- 【Leetcode】最小栈
- 编程范式8 笔记 C/C++内存
- 25个最基本的JavaScript面试问题及答案
- 数值优化(Numerical Optimization)学习系列(三)-线搜索
- <安彦>Spring MVC运行原理及案例
- CI Weekly #8 | CI/CD 技能进阶路线
- 批处理解约瑟夫环应用题-shell
- Sass基本特性--运算(加法、减法、乘法、除法、变量运算、数字运算、颜色运算、字符运算)
- spark性能调优的本质、Spark资源使用原理和调优要点分析