包含min函数的栈(剑指offer-20)
2024-10-09 07:12:33
题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
注意:保证测试中不会当栈为空的时候,对栈调用pop()或者min()或者top()方法。
题目解析
Java里Stack的peek方法是返回栈顶的元素但不移除它,但Stack的pop方法是会移除的。
题目答案
import java.util.Stack; public class Solution { private Stack<Integer> dataStack= new Stack<>();//数据栈
private Stack<Integer> minStack= new Stack<>();//最小数的栈 public void push(int node) {
dataStack.push(node);
if(minStack.isEmpty() || minStack.peek()>dataStack.peek()){
minStack.push(dataStack.peek());
}
else minStack.push(minStack.peek());
} public void pop() {
if(!dataStack.isEmpty()) dataStack.pop();
if(!minStack.isEmpty()) minStack.pop();
} public int top() {
return dataStack.peek();// 取出数据栈的栈顶元素
} public int min() {
return minStack.peek();//取出含min函数的栈的栈顶元素
}
}
最新文章
- Target runtime com.genuitec.runtime.generic.jee60 is not defined
- SVN代码冲突解决方案小集合
- Linux打包与压缩及tar命令详解
- U-boot.lds文件分析
- OpenNebula 创建虚拟机失败(未解决)
- C语言宏的特殊用法和几个坑(转)
- web之Respone
- 原生ajax封装,数据初始化,
- Ambari Auto Start(进程自动拉起)
- vue-cli 发布部署IIS
- [PHP]算法-跳台阶问题的PHP实现
- Shiro进行简单的身份验证(二)
- 使用Django创建网站项目<;二>;
- cetus系列~ 读写分离具体分析
- shiro自定义realm支持MD5算法认证(六)
- [洛谷P1731][NOI1999]生日蛋糕(dfs)(剪枝)
- MySQL(2)数据库 表的查询操作
- Time的各种变量unity3d
- Unity2D 面向目标方向
- Qt 利用XML文档,写一个程序集合 二
热门文章
- 总结梳理:webpack中如何使用vue
- 处理npm安装模块报错01
- Pytest单元测试框架——Pytest+Allure+Jenkins的应用
- BUAA_OO_2020_Unit3_总结博客
- matlab中imwrite函数详解(imwrite的输出格式)
- OpenCV开发笔记(六十四):红胖子8分钟带你深入了解SURF特征点(图文并茂+浅显易懂+程序源码)
- 能被 K 整除的最大连续子串长度
- GoAccess分析Web日志
- Project Loom:Reactive模型和协程进行时(翻译)
- 修改VirtualBox中mac的分辨率