最小栈的单栈实现

  • 最小栈
  • 代码实现

最小栈

力扣简单习题:

代码实现

package com.immunize.leetcode.minstack;import java.util.Stack;/*** 需求:实现栈的push top pop getMin方法。* * @author Mr IMMUNIZE**/
public class MinStack {// 构建一个栈对象来实现需求private Stack<Integer> s = new Stack<Integer>();// 该值为栈内的最小值private int MinVal = Integer.MAX_VALUE;// push方法public boolean push(int x) {// 如果压栈之前,栈为空,则先将第一个值赋值给MinValif (x <= MinVal) {s.push(MinVal);MinVal = x;}s.push(x);return true;}// pop方法public void pop() {if (s.pop() == MinVal) {MinVal = s.pop();}}// top方法public int top() {return s.peek();}// getMin方法public int getMin() {return MinVal;}
}------------------------------------------------------------------------
package com.immunize.leetcode.minstack;/*** 测试最小栈* * @author Mr IMMUNIZE**/
public class MinStackTest {public static void main(String[] args) {MinStack ms = new MinStack();ms.push(-8);ms.push(-3);ms.push(8);// ms.push(9);ms.pop();ms.push(5);System.out.println(ms.getMin());System.out.println(ms.top());}}

该实现是基于单栈的实现,相比于双栈实现来讲更加简洁。

20190803:栈实践(最小栈)相关推荐

  1. 用两个栈实现最小栈的功能

    用两个栈实现最小栈的功能(取栈中最小数): package com.neusoft.data.structure;import java.util.Stack;/** * 用两个栈实现最小栈的功能 * ...

  2. 面试题 03.02. 栈的最小值/面试题30. 包含min函数的栈/155. 最小栈

    2020-05-10 1.题目描述 栈的最小值 2.题解 需要牺牲空间换时间,可以用vector来存储至当前元素的最小值,在push或者pop元素的时候需要更新. 3.代码 class MinStac ...

  3. Leetcode 最小栈问题

    今天在Leetcode刷了一道关于最小栈的问题,题目如下: 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈. push(x) – 将元素 x 推入栈中. pop() ...

  4. LeetCode 155.最小栈

    设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈. 实现 MinStack 类: MinStack() 初始化堆栈对象. void push(int val) 将元 ...

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

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

  6. leetcode-155 最小栈

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

  7. C++的STL栈实现获取栈中最小元素的成员

    实现一个获取栈中最小数据成员的函数,该栈支持如下操作: 1.push(x) : 将元素x压入栈中 2.pop() : 弹出(移除)栈顶元素 3.top() : 返回栈顶元素 4.getMin() : ...

  8. 【Java】Leetcode155 最小栈 (运用数据结构:栈 解题)

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

  9. Leetcode刷题 155题: 最小栈(基于python3和c++两种语言)

    ** Leetcode刷题 155题: 最小栈(基于python3和c++两种语言) ** ** 题目: ** 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈. ...

最新文章

  1. 算法----------字符串相乘(Java 版本)
  2. 初学者如何开发出高质量J2EE系统
  3. c blowfish java,blowfish-golang加密与java解密
  4. 《网络安全——应用技术与工程实践》
  5. ASP.NET 常用验证
  6. 用循环队列模拟银行窗口排队_银行告诉你什么是无锁队列
  7. TypeError: the JSON object must be str, bytes or bytearray, not NoneType
  8. linebreak_经典MT4指标3LineBreak
  9. 如何用html实现文件下载
  10. 陶大程招收博士计算机视觉,回顾优必选AI首席科学家陶大程博士获IEEE ICDM研究贡献奖的相关事件...
  11. 小包实用工具:国家代码大全
  12. firefox非量子版自定义搜索引擎
  13. 三维游戏开发实战--狙击僵尸(unity开发)
  14. quartz 每月一次_Quartz 定时任务框架详解
  15. 【愚公系列】2022年03月 FTP及Telnet弱口令渗透测试之字典生成器
  16. 音频交流会(个人学习向项目)
  17. Spark学习(1)-Spark基础
  18. 【翻译】西川善司「实验做出的游戏图形」「GUILTY GEAR Xrd -SIGN-」中实现的「纯卡通动画的实时3D图形」的秘密,前篇(1)...
  19. L1:一维圣维南方程
  20. Web大学生网页作业成品——美食餐饮网站设计与实现(HTML+CSS+JavaScript)

热门文章

  1. 落地即王道,锁死企业智变CP——云+AI
  2. @广州开发者,华为送来一份说明书——助你轻松应对开发难题
  3. 原生 CSS “杀死” 预处理器 Sass!
  4. 5G 还未商用,6G 研究已开始?!
  5. 苹果春季发布会:绝不玩别人玩剩下的!
  6. 聊天宝解散罗永浩退出;三大运营商回应提速降费;天猫 iPhone XS 最高降 2000 | 极客头条...
  7. 小米推新,黄章怒骂!留给魅族们的时间不多了 | 畅言
  8. 微信说不!有何不可?
  9. CTO职场解惑指南系列(二)春节篇
  10. 如何用分库分表的9种分布式主键ID生成方案?附小技巧