定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))
思想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))相关推荐
- 手写一个栈 java,数据结构|用java自己手写实现一个栈
javaDEMO 本网站记录了最全的各种JavaDEMO ,保证下载,复制就是可用的,包括基础的, 集合的, spring的, Mybatis的等等各种,助力你从菜鸟到大牛,记得收藏哦~~ https ...
- java语言中修饰一个常量_接口中定义一个常量所用的修饰符有: (5.0分)_学小易找答案...
[判断题]Java中的接口不允许被继承 (5.0分) [单选题]下列程序的输出结果是( ) public class Ex_36{ public static void main(String arg ...
- 20. 包含min函数的栈
题目 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 解答 栈 怎么想都想不出,看到图就懂了.max函数同理. class Solution { ...
- 剑指offer:包含min函数的栈 python实现
题目 题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 解题思路 暴力做法: 遍历一遍,找最小的数,然后返回. # -*- coding ...
- python剑指offer 包含min函数的栈
题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). # -*- coding:utf-8 -*- class Solution:def _ ...
- 剑指offer---包含min函数的栈
题目:包含min函数的栈 要求:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). class Solution { public:void pus ...
- 《剑指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]*. ...
- 剑指offer-JZ30 包含min函数的栈(C++,附自己的分析)
描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的 min 函数,输入操作时保证 pop.top 和 min 函数操作时,栈中一定有元素. 此栈包含的方法有: push(value ...
- 包含min函数的栈(important)
题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 解题思路: 使用一个辅助栈,当当前数字比辅助栈顶元素小的时候,当前元素进栈:否则将辅助 ...
最新文章
- 北师大计算机网络原理和应用作业,北师大网络作业计算机组成原理 作业一(可编辑)...
- JavaSE各阶段练习题----异常
- mysql 脚本安装工具_mysql 非安装版的一个自动安装脚本及工具(更新版)
- ASP.NET MVC程序播放H.264视频
- ROS学习笔记一:安装配置ROS环境
- Windows ×××服务器配置6-启用L2TP方式CA模式访问①
- mysql到底可不可以使用join_《Mysql 到底可不可以使用 Join ?》
- python opencv 鼠标提取矩形(Rectangle)ROI
- 系统同传软件_国外科研大牛的讲座,英语不好别抓瞎,免费同传神器来帮忙
- matlab 5 .封装:幅频特性
- iOS 查看Realm数据库表
- Python2.7爬虫——爬取微信公众号文章
- OBS Studio 录制视频画面很糊,不清晰,如何解决?
- 电脑和电脑之间到底是如何通信的
- 如何将matlab中文版本转换为英文界面
- 积跬步,聚小流------div模拟select,让select美美哒
- Lake Shore—625 型超导磁铁电源
- 7-8 哈利·波特的考试 (25 分)
- linux搭建ftp服务并创建目录,linux搭建ftp服务器
- 17 个关于雪花的有趣事实❄️❄️❄️
热门文章
- mysql online ddl
- Hyper-V 的导入和导出
- 【字符比较】单字符比较值是否相等
- 使用XDebug和WinCacheGrind分析PHP性能
- 直接让浏览器下载文件而不打开
- Java的拓展包C3P0和DBUtil的使用
- hdfs yarn hbase pid文件被删除解决办法:修改hadoop-daemon.sh yarn-daemon.sh hbase-daemon.sh中PID_DIR存储路径
- idea报错解决:Error: A JNI error has occurred, please check your installation and try again
- centos7安装、卸载docker (yum方式)
- kafka安装(版本kafka_2.11-0.11.0.0)