题目:最小栈

题目要求写一个MinStack的数据结构,实现push,pop,top,getMin等方法;

思路分析:

  1. 成员变量:定义两个队列stackAstackB
  2. 构造方法:给两个队列创建对象
  3. push: 添加元素e的时候,stackA正常添加,stackB需要比较一下,如果e小于等于栈顶元素的话,就添加,否则,过!!
  4. pop: 弹出的时候stackA正常弹出栈顶元素e,如果stackB的栈顶元素和e相同,那么stackB也要弹出栈顶元素;
  5. top: 直接读取stackA的栈顶元素;
  6. getMin: 直接读取stackB的栈顶元素;
class MinStack {//成员变量private LinkedList<Integer> stackA;private LinkedList<Integer> stackB;//构造方法public MinStack() {stackA = new LinkedList<>();stackB = new LinkedList<>();}   //成员方法public void push(int x) {stackA.push(x);if(stackB.isEmpty() || x <= stackB.peek()){stackB.push(x);}}    public void pop() {int e = stackA.pop();if(!stackB.isEmpty() && e == stackB.peek()){stackB.pop();}}   public int top() {return stackA.peek();}public int getMin() {return stackB.peek();}
}

【力扣Hot100】155. 最小栈相关推荐

  1. [力扣刷题总结](栈和单调栈篇)

    文章目录 ~~~~~~~~~~~~栈~~~~~~~~~~~~ 155. 最小栈 解法1:链表 剑指 Offer 31. 栈的压入.弹出序列 解法1:模拟栈 20. 有效的括号 解法1:栈 相似题目: ...

  2. LeetCode:155. 最小栈

    题目链接 155.最小栈 题目描述 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈. push(x) -- 将元素 x 推入栈中. pop() -- 删除栈顶的元素. ...

  3. 【LeetCode】【HOT】155. 最小栈(辅助栈)

    [LeetCode][HOT]155. 最小栈 文章目录 [LeetCode][HOT]155. 最小栈 package hot;import java.util.ArrayDeque; import ...

  4. leetcode - 155. 最小栈

    设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈. push(x) – 将元素 x 推入栈中. pop() – 删除栈顶的元素. top() – 获取栈顶元素. get ...

  5. 单调不减序列查询第一个大于等于_[力扣84,85] 单调栈

    题目链接 84. 柱状图中最大的矩形 85. 最大矩形 题目描述-84 给定 n 个非负整数,用来表示柱状图中各个柱子的高度.每个柱子彼此相邻,且宽度为 1 . 求在该柱状图中,能够勾勒出来的矩形的最 ...

  6. 力扣209-长度最小的子数组(Java,双指针解法)

    209. 长度最小的子数组 - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/minimum-size-subarray ...

  7. 力扣209. 长度最小的子数组

    题目描述: 给定一个含有 n 个正整数的数组和一个正整数 target .找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, ...

  8. leetcode系列-155.最小栈

    leetcode系列–第155题.最小栈 题目描述: 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈. 实现 MinStack 类: MinStack() 初始化 ...

  9. leetcode 155. 最小栈

    难度:简单 频次:59 题目: 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈. 实现 MinStack 类: MinStack() 初始化堆栈对象. void ...

最新文章

  1. 计算机房电磁辐射防护,计算机房电磁屏蔽
  2. tableau必知必会之如何在Tableau server中实现工作薄的自动刷新
  3. maven、gradle依赖分析
  4. part.write java_小白向:web中利用request.getPart()上传文件到服务器
  5. 查询进程打开的文件(转)
  6. 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程
  7. java中input表单中的type=date返回类型【切记】
  8. Java Netty 初步
  9. LR11安装报错:此计算机上缺少vc2005_sp1_with_atl_fix_redist,请安装所有缺少的必要组件,然后重新运行此安装。
  10. Lockdir 文件夹加密 破解
  11. CMMI认证难度大吗?
  12. python和jieba库进行简单文本处理之天龙八部小说
  13. Java算法:经纬度转换 将百度转为高德经纬度
  14. 重温经典,续写传奇,迈巴赫S600改铱银色加铁灰色双拼喷漆
  15. 【记录一次windows技术学习】使用笔记本DOS命令搭建WLAN热点
  16. html网站设计项目心得,网页设计制作心得体会,网页设计实训报告步骤
  17. html5是什么意思,html5是什么意思?
  18. 3.矩阵乘法和逆矩阵
  19. 《计算机操作系统(计算机)》
  20. Android 屏幕唤醒 + 屏幕解锁 + 开机广播android.intent.action.BOOT_COMPLETED

热门文章

  1. java的package与class与public
  2. 震动传感器(模拟和数字)
  3. VSTO PPT图表对象的操作(2)
  4. 关于计算机设计的英语作文,关于电脑的英语作文
  5. uni-app项目 医疗
  6. No Xcode or CLT version detected
  7. 杰瑞学Perl之多值比较问题
  8. GetMessage PeekMessage SendMessage PostMessage
  9. 结合CAP理论分析ElasticSearch的分布式实现方式
  10. leetcode-第六题 Z 字形变换