【剑指offer】面试题30:包含min函数的栈(Java)

定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。

 

示例:

MinStack minStack = new MinStack();
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.min();   --> 返回 -3.
minStack.pop();
minStack.top();      --> 返回 0.
minStack.min();   --> 返回 -2.
 

提示:

各函数的调用总次数不超过 20000 次

思路:辅助栈

代码:

class MinStack {

    Stack<Integer> stack;

    Stack<Integer> minstack;

    /** initialize your data structure here. */

    public MinStack() {

        stack = new Stack();

        minstack = new Stack();

    }

    

    public void push(int x) {

        stack.push(x);

        if(minstack.isEmpty()||x<=minstack.peek()){

            minstack.push(x);

        }else{

            minstack.push(minstack.peek());

        }

    }

    public void pop() {

        stack.pop();

        minstack.pop();

    }

    

    public int top() {

        return stack.peek();

    }

    

    public int min() {

        return minstack.peek();

    }

}

 

/**

 * 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();

 */

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485129.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

城市大脑全球标准研究3:如何理解城市大脑中的“大脑”?

作者&#xff1a;刘锋前言&#xff1a;2015年城市大脑概念和定义提出时&#xff0c;城市大脑的本意是指应用范围&#xff0c;覆盖地域非常广大的城市级神经系统&#xff0c;是巨大的“脑“&#xff0c;这里的“大”与大数据的”大”含义相同&#xff0c;此后产业界也有认为城市…

Django 模板系统2

1. tags 2. 母版和继承   1. 母版   就是一个普通的HTML文件&#xff0c;提取多个页面的公共部分   减少代码量 修改十分方便   定义block块   2. 使用&#xff08;继承&#xff09;   在子页面中   {% entends base.html %}   重新修改block块中的内容   3…

记pbcms网站被攻击,很多标题被篡改(1)

记得定期打开网站看看哦! 被攻击后的网站异常表现:网页内容缺失或变更,页面布局破坏,按钮点击无效,...... 接着查看HTML、CSS、JS文件,发现嵌入了未知代码! 攻击1:index.html 或其他html模板页面的标题、关键词、描述被篡改(俗称,被挂马...),如下: 攻击2:在ht…

Nature撤稿!三年前微软在量子计算上的巨大胜利终究是个错误

文章来源&#xff1a;wired多年来&#xff0c;为了构建一台能够实际运行的量子计算机&#xff0c;微软一直押注一种称为马约拉纳费米子的量子粒子。三年前&#xff0c;由微软资助的研究团队在《自然》杂志发表的论文称&#xff0c;证明这种粒子确实存在&#xff0c;但这一发现遭…

【剑指offer】面试题31:栈的压入、弹出序列(Java)

输入两个整数序列&#xff0c;第一个序列表示栈的压入顺序&#xff0c;请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如&#xff0c;序列 {1,2,3,4,5} 是某栈的压栈序列&#xff0c;序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列&#xff0c;但…

分布式事务两阶段提交

前言 不知道你是否遇到过这样的情况&#xff0c;去小卖铺买东西&#xff0c;付了钱&#xff0c;但是店主因为处理了一些其他事&#xff0c;居然忘记你付了钱&#xff0c;又叫你重新付。又或者在网上购物明明已经扣款&#xff0c;但是却告诉我没有发生交易。这一系列情况都是因为…

【重磅收藏】智源发布《人工智能的认知神经基础白皮书》

来源&#xff1a;brainnews完整报告下载链接????https://event-cdn.baai.ac.cn/20210308/2020-brain-and-machine-intelligence-report.pdf&#xff08;可点击「阅读原文」查看&#xff09;《2020年人工智能的认知神经基础白皮书》指导老师&#xff1a;智源“人工智能的认知…

ConcurrentHashMap源码剖析(1.8版本)

目录 ConcurrentHashMap源码剖析数据结构NodeForwardingNodeTreeNodeTreeBin核心成员核心函数ConcurrentHashMap(int initialCapacity)initTableputgettreeifyBintryPresizetransferaddCountConcurrentHashMap源码剖析 基于jdk1.8。 参考文章&#xff1a; https://yq.aliyun.co…

【剑指offer】面试题32 - I:从上到下打印二叉树(Java)

从上到下打印出二叉树的每个节点&#xff0c;同一层的节点按照从左到右的顺序打印。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回&#xff1a; [3,9,20,15,7] 提示&#xff1a; 节点总数 < 1000 代码&#xff1a; /** * D…

2021十大关键显示科技趋势

来源&#xff1a;国际信息显示学会SID排版&#xff1a;珊妮作者&#xff1a;Sri Peruvemba&#xff0c;CEO&#xff0c;Marketer International Inc.翻译&#xff1a;SID China2021年显示技术正在发生巨变&#xff0c;随着我们进入未来十年&#xff0c;我们将拥有更加智能、紧凑…

【剑指offer】面试题32 - II:从上到下打印二叉树 II(Java)

从上到下按层打印二叉树&#xff0c;同一层的节点按从左到右的顺序打印&#xff0c;每一层打印到一行。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果&#xff1a; [ [3], [9,20], [15,7] ] 提示&#xff1a…

spring整合ehcache2.5.2缓存异常-- net.sf.ehcache.CacheException

报错如下&#xff1a; The source of the existing CacheManager is: DefaultConfigurationSource [ ehcache.xml or ehcache-failsafe.xml ]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFacto…

科技议题“破圈”有利还是有弊|观点

编辑&#xff1a;赵路排版&#xff1a;郭刚作者&#xff1a;李侠最近几年时常出现科技议题进入社会领域并引起社会广泛关注的现象&#xff0c;学界通常将之称为“破圈”&#xff0c;即议题突破科技界原有的狭小圈子而进入更大的社会领域&#xff0c;并引来社会热议。客观地说&a…

【剑指offer】面试题32 - III:从上到下打印二叉树 III(Java)

请实现一个函数按照之字形顺序打印二叉树&#xff0c;即第一行按照从左到右的顺序打印&#xff0c;第二层按照从右到左的顺序打印&#xff0c;第三行再按照从左到右的顺序打印&#xff0c;其他行以此类推。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 /…

python---str和repr

在 Python 中要将某一类型的变量或者常量转换为字符串对象通常有两种方法&#xff0c;即 str() 或者 repr() 。 区别与使用 函数str() 用于将值转化为适于人阅读的形式&#xff0c;而repr() 转化为供解释器读取的形式&#xff08;如果没有等价的语法&#xff0c;则会发生Syntax…

学术研究发现英特尔 CPU 存在新漏洞

作者&#xff1a;Thomas Claburn译者&#xff1a;Sambodhi策划&#xff1a;施尧美国的芯片黑客又想出了一种方法&#xff0c;利用英特尔的处理器设计选择来窃取敏感数据。伊利诺伊大学香槟分校的博士生 Riccardo Paccagnella、硕士生 Licheng Luo 和助理教授 Christopher Fletc…

Leetcode--994. 腐烂的橘子(java)

在给定的网格中&#xff0c;每个单元格可以有以下三个值之一&#xff1a; 值 0 代表空单元格&#xff1b; 值 1 代表新鲜橘子&#xff1b; 值 2 代表腐烂的橘子。 每分钟&#xff0c;任何与腐烂的橘子&#xff08;在 4 个正方向上&#xff09;相邻的新鲜橘子都会腐烂。 返回直…

CICC科普栏目丨时间之箭:从熵到大爆炸再到万物理论(一)

来源&#xff1a;BBC转自&#xff1a;数学加油吧假设有这么一天&#xff0c;你在家里感到无聊&#xff0c;你把几个鸡蛋顶在头上表演起杂耍&#xff0c;但你的表演不太成功&#xff0c;鸡蛋打碎糊了你一脸。现在你将不得不去洗下脸再冲个澡&#xff0c;然后换上一身新衣服。那为…

NOIP2007 树网的核

传送门 最近搞一搞树型结构……毕竟自己树的知识学的太垃圾了。 首先这道题非常明显要求树的直径。树的直径有好多好多种求法&#xff0c;这里我选择了一位dalao的非常简洁的dfs的方法。先看一下代码。 void dfs(int x) {for(int i head[x];i;i e[i].next){if(fa[x] e[i].to…

只有这种AI芯片才能拯救人工智能?

来源&#xff1a;内容由半导体行业观察&#xff08;ID&#xff1a;icbank&#xff09;编译&#xff1a;「wired」人工智能不断发展&#xff0c;对保持AI运行所需的计算能力的渴望也与日俱增。Lightmatter&#xff0c;一家诞生于MIT的初创公司&#xff0c;他们正在押注一款使用光…