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

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

代码:

package offer;

import java.util.Stack;
class MinInStack
{
    Stack<Integer> stack = new Stack<Integer>();
    Stack<Integer> minstack = new Stack<Integer>();
    MinInStack()
    {
        this.stack = new Stack<Integer>();
        this.minstack = new Stack<Integer>();
    }
    boolean IsEmpty()
    {
        return this.stack.empty();
    }
    int Top()
    {
        return this.stack.peek();
    }
    int min()
    {
        return this.minstack.peek();
    }
    void Push(int val)
    {
        this.stack.add(val);
        if(this.minstack.empty())
        {
            this.minstack.add(val);
        }
        else if(val<=this.minstack.peek())
        {
            this.minstack.add(val);
        }
        else
        {
            this.minstack.add(this.minstack.peek());
        }
    }
    int Pop()
    {
        int x = this.stack.pop();
        if(!this.minstack.empty())
        {
            this.minstack.pop();
        }    
        return x;
    }
}
public class ti30 {
    public static void main(String[] args)
    {
         MinInStack stack = new MinInStack();
         stack.Push(3);
         System.out.println(stack.min());
         stack.Push(4);
         System.out.println(stack.min());
         stack.Push(2);
         System.out.println(stack.min());
         stack.Push(1);
         System.out.println(stack.min());
         stack.Pop();
         System.out.println(stack.min());
         stack.Pop();
         System.out.println(stack.min());
         stack.Push(0);
         System.out.println(stack.min());
    }
}
 

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

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

相关文章

计算机操作系统——处理机调度算法

计算机操作系统——处理机调度算法 一、处理机调度的层次和调度算法的目标 1.处理及调度的层次 高级调度&#xff1a;&#xff08;周期较长&#xff0c;大约几分钟一次&#xff09; 又称为长程调度或作业调度 调度对象&#xff1a;作业 功能&#xff1a;根据算法决定将外存中…

宇宙即计算~一种新科学:斯蒂芬·沃尔夫勒姆

编辑 &#xff1a;Gemini来源&#xff1a;人机与认知实验室斯蒂芬沃尔夫勒姆这个名字&#xff0c;在中文世界里可能远谈不上家喻户晓&#xff1b;但他的英文名Stephen Wolfram恐怕反而却要熟悉得多。他是Mathematica软件的发明者和首席设计师&#xff0c;被广泛地认为是当今科学…

2018acm-icpc宁夏邀请赛后记

由于要准备期末考试的缘故&#xff0c;时隔一个月之后我才想起来还有一场比赛没有总结。 大概是出去过的最远的地方了&#xff0c;宁夏理工学院离杭州有两千多千米。 不得不说感到了主办方满满的诚意&#xff0c;虽然是第一次办比赛&#xff0c;但是第一天组织的沙湖旅游&#…

【剑指offer】面试题31:栈的压入,弹出序列

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

maven安装与项目创建

maven安装与项目创建 Maven是一个软件项目管理和理解工具。基于项目对象模型的概念&#xff0c;Maven可以管理项目的根据一条中心信息构建、报告和记录。 文件 最新的文件可以在https://maven.apache.org/.找到 系统需求 JDK: 1.7或更高版本(这是为了执行Maven -它仍然允许…

windows 安装zip 压缩

* 到sourceforge上下载 zip-3.0-bin.zip https://sourceforge.net/projects/gnuwin32/files/zip/3.0/zip-3.0-bin.zip/download?use_mirrorjaist 或者http://pan.baidu.com 链接: https://pan.baidu.com/s/1HObxhQUdbsl8J-B-IeeRUg 密码: 9922 * 解压 * 把bin目录下面的exe文件…

应对全球粮食危机 AI、5G与机器视觉联手“养鱼”

来源&#xff1a;Forbes编译&#xff1a;科技行者时至今日&#xff0c;全球粮食挑战已经成为现实难题&#xff0c;环境危机的恶化又进一步加剧了这个挑战。而在这样一波重压之下&#xff0c;人工智能、机器视觉与5G网络等新兴技术能否指明新的解决方案?挪威鲑鱼养殖公司Cermaq…

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

从上往下打印二叉树的每个节点&#xff0c;同一层的节点按照从左到右的顺序打印。例如输入下图的二叉树&#xff0c;则一次打印出8&#xff0c;6&#xff0c;10&#xff0c;5&#xff0c;7&#xff0c;9&#xff0c;11。 思路&#xff1a;利用队列,将左右子树加入队列末尾&…

cache命中率、平均访问时间、访问效率的计算公式

cache命中率、平均访问时间、访问效率的计算公式 cache命中率 平均访问时间 访问效率 使用cache可以提高计算机的性能&#xff0c;也提高了主存访问的效率

全息技术“量子飞跃”或彻底改变成像技术

作者&#xff1a;冯卫东 来源&#xff1a;科技日报科技日报北京2月9日电 &#xff08;记者冯卫东&#xff09;据最新一期《自然物理学》报道&#xff0c;英国格拉斯哥大学的物理学家首次找到使用量子纠缠光子来将信息编码为全息图的方法。这一突破了传统全息方法局限性的新型量…

(三)PYTHON字典 元祖 列表尝试应用

&#xff08;三&#xff09;PYTHON字典 元祖 列表尝试应用 1、 使用 join 方法将下划线添加到列表的每一个元素拼接成字符串&#xff0c;li &#xff1d; [alex, eric, rain] li [boom, TNT, zhadan] daying "_".join(li) print(daying) 2、 查找列表中元素&#…

定点数与浮点数的表示方法

计算机组成原理——定点数与浮点数 计算机中常用的数据表示格式有两种&#xff0c;一是定点格式&#xff0c;二是浮点格式。一般来说&#xff0c;定点格式容许的数值范围有限&#xff0c;要求的处理硬件比较简单。而浮点格式容许的数值范围很大&#xff0c;要求的处理硬件比较…

【剑指offer】面试题33:二叉搜索树的后序遍历序列

输入一个整数数组&#xff0c;判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true。否则返回false。假设输入的数组的任意两个数字都互不相同。 代码&#xff1a; package offer; public class ti33 { static boolean VerifyTree(int nums[],int start,in…

AI 3.0》王飞跃教授推荐序——未来智能:人有人用,机有机用

☉ 王飞跃中国自动化学会监事长中国科学院自动化研究所复杂系统管理与控制国家重点实验室主任来源&#xff1a;德先生转自&#xff1a;中国自动化学会初见梅拉妮米歇尔之名&#xff0c;还是20世纪80年代末研究她与侯世达关于类比推理的开创性程序“Copycat”&#xff08;拷贝猫…

计算机组成原理——计算机系统的性能指标(机器字长、存储容量、运算速度)

计算机组成原理——计算机系统的性能指标 计算机系统的性能指标&#xff08;机器字长、存储容量&#xff0c;运算速度&#xff09;&#xff1a; 1. 吞吐量&#xff1a; 一台计算机在某一时间间隔内能够处理的信息量。 2. 响应时间&#xff1a; 从输入有效到系统产生响应之间…

【剑指offer】面试题34:二叉树中和为某一值的路径

输入一颗二叉树和一个整数&#xff0c;打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 代码&#xff1a; package offer; import java.util.ArrayList; class BineryTree1 { int val; Bine…

自动驾驶发展调查:产业化还需技术“破冰”

来源&#xff1a;机器学习研究组订阅/ 导读 /在汽车产业转入存量博弈时代的关键节点&#xff0c;出行领域的变革也随之蓄势待发。汽车制造厂商、出行平台以及科技公司纷纷抢滩自动驾驶赛道。作为一个处于发展初期的产业&#xff0c;自动驾驶从技术路线到落地场景&#xff0c;从…

计算机组成原理——机器字长、指令字长、存储字长

计算机组成原理——机器字长、指令字长、存储字长 字长&#xff1a; 字长&#xff1a; 一个字中的二进制位的位数&#xff0c;是计算机系统结构中的一个重要特性。字长在计算机结构和操作的多个方面均有体现。计算机中大多数寄存器的大小是一个字长。计算机处理的典型数值也可…

【剑指offer】面试题35:复杂链表的复制(Java 实现)

请实现函数ComplexListNode* Clone(ComplexListNode * pHead),复制一个复杂链表。在复杂链表中&#xff0c;每个结点除了有一个m_pNext指针指向下一个结点外&#xff0c;还有一个m_pSibling指向链表中的任意结点或者NULL。结点的C定义如下&#xff1a; struct ComplexListNode…

人类倾向于高估人工智能的进步,低估自身智能的复杂性-读《AI 3.0》

有很多关于人工智能的书。亚马逊网站上就有20,000本。其中很多书都有戏剧性的标题&#xff0c;比如《生命3.0》 &#xff0c;《终极算法》 &#xff0c;尤其是《奇点来临》。梅勒妮 米切尔的新书的标题更加谦虚&#xff0c;但是在我看来&#xff0c;在这个主题上&#xff0c;它…