题目描述

定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的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函数的栈的栈顶元素
}
}

最新文章

  1. Target runtime com.genuitec.runtime.generic.jee60 is not defined
  2. SVN代码冲突解决方案小集合
  3. Linux打包与压缩及tar命令详解
  4. U-boot.lds文件分析
  5. OpenNebula 创建虚拟机失败(未解决)
  6. C语言宏的特殊用法和几个坑(转)
  7. web之Respone
  8. 原生ajax封装,数据初始化,
  9. Ambari Auto Start(进程自动拉起)
  10. vue-cli 发布部署IIS
  11. [PHP]算法-跳台阶问题的PHP实现
  12. Shiro进行简单的身份验证(二)
  13. 使用Django创建网站项目&lt;二&gt;
  14. cetus系列~ 读写分离具体分析
  15. shiro自定义realm支持MD5算法认证(六)
  16. [洛谷P1731][NOI1999]生日蛋糕(dfs)(剪枝)
  17. MySQL(2)数据库 表的查询操作
  18. Time的各种变量unity3d
  19. Unity2D 面向目标方向
  20. Qt 利用XML文档,写一个程序集合 二

热门文章

  1. 总结梳理:webpack中如何使用vue
  2. 处理npm安装模块报错01
  3. Pytest单元测试框架——Pytest+Allure+Jenkins的应用
  4. BUAA_OO_2020_Unit3_总结博客
  5. matlab中imwrite函数详解(imwrite的输出格式)
  6. OpenCV开发笔记(六十四):红胖子8分钟带你深入了解SURF特征点(图文并茂+浅显易懂+程序源码)
  7. 能被 K 整除的最大连续子串长度
  8. GoAccess分析Web日志
  9. Project Loom:Reactive模型和协程进行时(翻译)
  10. 修改VirtualBox中mac的分辨率