首页 > 其他分享 >面试题 03.02. 栈的最小值

面试题 03.02. 栈的最小值

时间:2023-01-31 18:33:19浏览次数:38  
标签:面试题 minstack pop public push 最小值 03.02 stack

1.题目

请设计一个栈,除了常规栈支持的pop与push函数以外,还支持min函数,该函数返回栈元素中的最小值。执行push、pop和min操作的时间复杂度必须为O(1)。



3.代码

class MinStack {
//定义两个值,等会在构造方法里面创建他们的对象,因为在main方法里面创建的是MinStack的对象
//所以必须要在构造方法里面创建两个栈的对象,而定义却要在MinStack类里面,因为下面的其他方法还要用到这个对象
Stack<Integer> stack;//普通的栈
Stack<Integer> minstack;//里面栈顶的值就是最小值

/** initialize your data structure here. */
public MinStack() {
stack = new Stack<>();
minstack = new Stack<>();
// minstack.push(Integer.MAX_VALUE);//这里是可以用在另一个方法

}

//往栈里面添加元素,普通栈是一定要加的,最小值栈满足一定的条件再添加
public void push(int x) {
if(stack.empty() || x<=minstack.peek()){//满足普通栈是空的,要加入的元素比自己栈顶的元素还小
minstack.push(x);
}
stack.push(x);

}

//往栈里面移除元素,就是出栈,普通栈是一定要出的,最小值栈满足条件再出
public void pop() {
if(stack.peek().equals(minstack.peek())){
minstack.pop();
}
stack.pop();

}

//获得普通栈顶的元素
public int top() {
return stack.peek();

}

//获得最小值,就是最小值栈的栈顶
public int getMin() {
return minstack.peek();


}
}

标签:面试题,minstack,pop,public,push,最小值,03.02,stack
From: https://blog.51cto.com/u_15806469/6029850

相关文章

  • 面试题2
    第一部分Python基础篇 简述解释型和编译型编程语言? 计算机不理解高级语言,任何高级语言想要被计算机运行,都必须通过转换器(解释器或编译器)转换成计算机语言。转换方......
  • 嵌入式面经_嵌入式面试题_嵌入式软件开发面经C++面经111道面试题答案解析
     本人2020年本硕毕业于广东工业大学:嵌入式许乔丹,牛客高级专栏作者,牛客大学讲师,在2020届秋招共拿到珠海格力,云从科技,CVTE,小米,美的,华为的嵌入式offer,签约CVTE嵌入式岗位,整......
  • Hadoop-基础知识面试题
    1、Hadoop集群的最主要瓶颈磁盘IO 2、Hadoop三大组件(1)、HDFSHDFS(HadoopDistributedFileSystem)是Hadoop项目的核心子项目,主要负责集群数据的存储与读取,HDFS......
  • 【面试题】做了一份前端面试复习计划,保熟~
    前言以前我看到面试贴就直接刷掉的,从不会多看一眼,直到去年9月份我开始准备面试时,才发现很多面试经验贴特别有用,看这些帖子(我不敢称之为文章,怕被杠)的过程中对我的复习思维......
  • 异常面试题
    1.异常的处理声明:其实就是程序中遇到异常时,自己不处理,交给其它程序处理throw(在使用throw抛出异常代码的后面,不能书写任意代码)捕获:其实就是在程序中遇到异常时,不......
  • 反射面试题
    1.什么是反射机制,反射机制的优缺点.Java反射机制是在运行过程中,对于任意一个类,都可以知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属......
  • JVM面试题
    1.JVM运行流程首先通过编译把Java代码转换成字节码文件,然后类加载器(ClassLoader)再把字节码文件加载到内存中,放在运行时数据区的方法区内,然后需要特定的命令解析器执......
  • 事务面试题
    1.说下事务的ACID原子性(Atomicity):原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生,一致性(Consistency):事务前后数据的完整性必须保持......
  • 通信协议面试题
    1.名词解释IP协议TOC协议UDPIP协议分组交换协议不可靠传输一个数据包自动分成若干小的数据包然后通过网络进行传输TCP协议传输控制协议可靠协议建立在IP协议之......
  • 关于面试题的一些记录
    笔试1、谈谈你对三层架构的理解?2、C#中的委托是什么?事件是不是一种委托?事件和委托的关系。3、说出一些常用的类、接口,请各举5个4、什么是sql注入?如何避免sql注入?5、C#......