以空间换时间:

package leetcode.sword_to_offfer.day01;

import java.util.Stack;

/**
* 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。
* <p>
* 示例:
* <p>
* MinStack minStack = new MinStack();
* minStack.push(-2);
* minStack.push(0);
* minStack.push(-3);
* minStack.min(); --> 返回 -3.
* minStack.pop();
* minStack.top(); --> 返回 0.
* minStack.min(); --> 返回 -2.
* <p>
* <p>
* 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.min();
*
* @author soberw
* @Classname MinStack
* @Description
* @Date 2022-02-07 9:16
*/
public class MinStack {
private final Stack<Integer> st;
private int minValue = Integer.MAX_VALUE; //存放最小值 /**
* initialize your data structure here.
*/
public MinStack() {
st = new Stack<>();
} public void push(int x) {
st.push(minValue); //存入当前最小值
minValue = Math.min(x, minValue); //保证当前minValue最小
st.push(x); // 存入数据
} public void pop() {
st.pop(); //出栈
minValue = st.pop(); //存放的最小值出栈
} public int top() {
return st.peek();
} public int min() {
return minValue;
}
}

简单示意图:

最新文章

  1. Java开发环境搭建——Idea开发环境
  2. Android内存清理
  3. ubuntu14.04 JDK安装
  4. hmtl弹出框样式
  5. 发现struct proc_dir_entry内核3.10.17移到internal中去了,倒
  6. JavaScript-插入concat,splice,截取slice
  7. python num[y array
  8. hdu 4662 MU Puzzle
  9. xcode设置 - App内存暴增
  10. 20151210 Jquery 学习笔记 AJAX 进阶
  11. 几款常用Eclipse java插件
  12. MySQL分支Percona,折腾中,先科普一下
  13. [置顶] ios App 中嵌入应用商店
  14. FREESWITCH SEESION
  15. 使用cocapods报错 [!] Your Podfile has had smart quotes sanitised. To avoid issues in the future, you should not use TextEdit for editing it. If you are not using TextEdit, you should turn off smart quotes
  16. strval
  17. 安装anaconda与tensorflow
  18. pc端移动端拖拽实现
  19. Java——值传递与引用传递
  20. CF1146 Forethought Future Cup Elimination Round Tutorial

热门文章

  1. 初识python:tkinter 实现 弹球小游戏(非面相对象)
  2. jquery 的 ajax 传输 数组 ,但后台无法获取的 原因 与 解决 办法
  3. Thrift框架-安装
  4. Echart可视化学习(九)
  5. sqoop的使用之import导入到HDFS
  6. 51 Nod 1134 最长递增子序列 (动态规划基础)
  7. 互联网医疗行业PEST分析实践
  8. netty系列之:好马配好鞍,为channel选择配套的selector
  9. 【记录一个问题】用毫无用处的方法解决了libtask的asm.S在ndk下编译的问题
  10. Cesium应用篇--添加雨雪天气