思想1:(Java程序员面试宝典)

用空间换时间

两个栈sd存数据,sm存最小值

存入时:

若sm为空,两个直接存数据;

若sm不为空,待存数据与sm的栈顶元素比较,小于时存入,否则不存

出栈:

若sd的栈顶元素和sm的相等,两个都弹出

不等,则只是sd弹出

min():

直接弹出sm的栈顶元素

import java.util.Stack;public class Solution {Stack<Integer> sd=new Stack<Integer>();Stack<Integer> sm=new Stack<Integer>();public void push(int node) {sd.push(node);if(sm.isEmpty()){sm.push(node);}else {if(node<sm.peek())sm.push(node);}}public void pop() {if(sd.isEmpty())return;if(sd.peek()==sm.peek()){sd.pop();sm.pop();}else{sd.pop();}}public int top() {return sd.peek();}public int min() {if(sm.isEmpty())return Integer.MAX_VALUE;elsereturn sm.peek();}
}

定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))相关推荐

  1. 手写一个栈 java,数据结构|用java自己手写实现一个栈

    javaDEMO 本网站记录了最全的各种JavaDEMO ,保证下载,复制就是可用的,包括基础的, 集合的, spring的, Mybatis的等等各种,助力你从菜鸟到大牛,记得收藏哦~~ https ...

  2. java语言中修饰一个常量_接口中定义一个常量所用的修饰符有: (5.0分)_学小易找答案...

    [判断题]Java中的接口不允许被继承 (5.0分) [单选题]下列程序的输出结果是( ) public class Ex_36{ public static void main(String arg ...

  3. 20. 包含min函数的栈

    题目 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 解答 栈 怎么想都想不出,看到图就懂了.max函数同理. class Solution { ...

  4. 剑指offer:包含min函数的栈 python实现

    题目 题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 解题思路 暴力做法: 遍历一遍,找最小的数,然后返回. # -*- coding ...

  5. python剑指offer 包含min函数的栈

    题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). # -*- coding:utf-8 -*- class Solution:def _ ...

  6. 剑指offer---包含min函数的栈

    题目:包含min函数的栈 要求:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). class Solution { public:void pus ...

  7. 《剑指offer》-- 构建乘积数组、求1+2+3+...+n、不用加减乘除做加法、包含min函数的栈、用两个栈实现队列

    一.构建乘积数组: 1.题目: 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*. ...

  8. 剑指offer-JZ30 包含min函数的栈(C++,附自己的分析)

    描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的 min 函数,输入操作时保证 pop.top 和 min 函数操作时,栈中一定有元素. 此栈包含的方法有: push(value ...

  9. 包含min函数的栈(important)

    题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 解题思路: 使用一个辅助栈,当当前数字比辅助栈顶元素小的时候,当前元素进栈:否则将辅助 ...

最新文章

  1. 北师大计算机网络原理和应用作业,北师大网络作业计算机组成原理 作业一(可编辑)...
  2. JavaSE各阶段练习题----异常
  3. mysql 脚本安装工具_mysql 非安装版的一个自动安装脚本及工具(更新版)
  4. ASP.NET MVC程序播放H.264视频
  5. ROS学习笔记一:安装配置ROS环境
  6. Windows ×××服务器配置6-启用L2TP方式CA模式访问①
  7. mysql到底可不可以使用join_《Mysql 到底可不可以使用 Join ?》
  8. python opencv 鼠标提取矩形(Rectangle)ROI
  9. 系统同传软件_国外科研大牛的讲座,英语不好别抓瞎,免费同传神器来帮忙
  10. matlab 5 .封装:幅频特性
  11. iOS 查看Realm数据库表
  12. Python2.7爬虫——爬取微信公众号文章
  13. OBS Studio 录制视频画面很糊,不清晰,如何解决?
  14. 电脑和电脑之间到底是如何通信的
  15. 如何将matlab中文版本转换为英文界面
  16. 积跬步,聚小流------div模拟select,让select美美哒
  17. Lake Shore—625 型超导磁铁电源
  18. 7-8 哈利·波特的考试 (25 分)
  19. linux搭建ftp服务并创建目录,linux搭建ftp服务器
  20. 17 个关于雪花的有趣事实❄️❄️❄️

热门文章

  1. mysql online ddl
  2. Hyper-V 的导入和导出
  3. 【字符比较】单字符比较值是否相等
  4. 使用XDebug和WinCacheGrind分析PHP性能
  5. 直接让浏览器下载文件而不打开
  6. Java的拓展包C3P0和DBUtil的使用
  7. hdfs yarn hbase pid文件被删除解决办法:修改hadoop-daemon.sh yarn-daemon.sh hbase-daemon.sh中PID_DIR存储路径
  8. idea报错解决:Error: A JNI error has occurred, please check your installation and try again
  9. centos7安装、卸载docker (yum方式)
  10. kafka安装(版本kafka_2.11-0.11.0.0)