剑指Offer-包含min函数的栈

package Stack;

import java.util.Stack;

/**
 * 包含min函数的栈
 * 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
 * 思路:
 * 用一个栈data保存数据,用另外一个栈min保存入栈最小的数
 */
public class Solution25 {

    Stack<Integer> date = new Stack<>();//存储数据
    Stack<Integer> min = new Stack<>();//存储最小值


    public void push(int node) {
        date.push(node);
        if (min.empty()) {
            min.push(node);
        } else {
            min.push((min.peek()) > node ? node : min.peek());//min栈顶始终是最小值
        }
    }

    public void pop() {
        date.pop();
        min.pop();
    }

    public int top() {
        return date.peek();
    }

    public int min() {
        return min.peek();
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏日常学python

深入理解python中的类和对象

刚开始学习python的时候或者其他的是面向对象的编程语言的时候,难免会对类和对象理解得不太清楚。所以今天和大家分享下python中的类和对象,深入理解下pyt...

11200
来自专栏cs

xml基本知识点

xml, Extensible Markup Language,可扩展的标记语言。 ? xml文档结构.jpg xml文档的规则 1.0 xml文档必须以一个...

35050
来自专栏用户2442861的专栏

STL list源码分析以及实现

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/d...

11230
来自专栏北京马哥教育

Python 运算符,你知道多少?

糖豆贴心提醒,本文阅读时间5分钟,文末有秘密! ? 编辑 | 糖豆 图 | 来源网络 ? 什么是运算符? 本章节主要说明Python的运算符。举个简...

46640
来自专栏java学习

工程师笔试题1

1.访问修饰符作用范围由大到小是( )。 A.private-protected-default-publicB.public-protected-defaul...

28940
来自专栏尾尾部落

普林斯顿大学算法公开课笔记——选择排序 普林斯顿大学算法公开课笔记——选择排序

简单选择排序的特点是交换移动次数很少(至多n-1次),其时间复杂度为 O(n²) (时间主要花在比较上,总的比较次数为N=(n-1)+(n-2)+…+1=n*(...

10430
来自专栏十月梦想

JavaScript数组元素排序

使用for循环遍历出数组;然后判断i号元素和i+1号大小,如果判断大于,存储小的元素,如果判断小于存储大的元素

9230
来自专栏Bug生活2048

Python自学之路-内置函数说明及实例(二)

这有利于组织代码,把某些应该属于某个类的函数给放到那个类里去,同时有利于命名空间的整洁。

14910
来自专栏java学习

第3天的练习

大家把答案在留言区留下来 1:常见的算术运算符有哪些? +运算符的作用有哪些? 除法和取余的区别? ++和--的使用规则? 2:常见的赋值运算符有哪...

36170
来自专栏hbbliyong

nodejs 的序列化与反序列化

1.序列化 stringify函数的作用就是序列化对象,也就是说将对象类型转换成一个字符串类型(默认的分割符("&")和分配符("=")),先介绍它的基本用法,...

33970

扫码关注云+社区

领取腾讯云代金券