【剑指offer】面试题30:包含min函数的栈(Java)
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。
示例:
MinStack minStack = new MinStack();
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.min(); --> 返回 -3.
minStack.pop();
minStack.top(); --> 返回 0.
minStack.min(); --> 返回 -2.
提示:
各函数的调用总次数不超过 20000 次
思路:辅助栈
代码:
class MinStack {
Stack<Integer> stack;
Stack<Integer> minstack;
/** initialize your data structure here. */
public MinStack() {
stack = new Stack();
minstack = new Stack();
}
public void push(int x) {
stack.push(x);
if(minstack.isEmpty()||x<=minstack.peek()){
minstack.push(x);
}else{
minstack.push(minstack.peek());
}
}
public void pop() {
stack.pop();
minstack.pop();
}
public int top() {
return stack.peek();
}
public int min() {
return minstack.peek();
}
}
/**
* Your MinStack object will be instantiated and called as such:
* MinStack obj = new MinStack();
* obj.push(x);
* obj.pop();
* int param_3 = obj.top();
* int param_4 = obj.min();
*/
【剑指offer】面试题30:包含min函数的栈(Java)相关推荐
- 剑指offer面试题30. 包含min函数的栈(辅助栈)
题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min.push 及 pop 的时间复杂度都是 O(1). 思路 详见链接 代码 class Min ...
- 剑指offer面试题[21]包含min函数的栈
题目: 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数. 分析: 看到这个问题,我们的第一反应可能是每次压入一个新元素进栈时,将栈里所有的元素排序,让最小的元位于栈顶,这样就能在 ...
- 剑指offer(20)包含min函数的栈
import java.util.Stack;public class Solution {//创建俩个辅助栈,stack1用来存放压入的元素,stack2用来保存较小元素Stack<Integ ...
- 《LeetCode力扣练习》剑指 Offer 30. 包含min函数的栈 Java
<LeetCode力扣练习>剑指 Offer 30. 包含min函数的栈 Java 一.资源 题目: 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调 ...
- 剑指offer:面试题30. 包含min函数的栈
题目:包含min函数的栈 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min.push 及 pop 的时间复杂度都是 O(1). MinStack min ...
- 【剑指offer-Java版】21包含min函数的栈
包含min操作的栈:在基本栈基础上提供一个Min功能,可以取得当前栈的最小值 重点在于思路,拿空间换取了Min的功能,申请一个等量空间的辅助栈用于存取栈中的最小元素 public class _Q21 ...
- 面试题 03.02. 栈的最小值/面试题30. 包含min函数的栈/155. 最小栈
2020-05-10 1.题目描述 栈的最小值 2.题解 需要牺牲空间换时间,可以用vector来存储至当前元素的最小值,在push或者pop元素的时候需要更新. 3.代码 class MinStac ...
- 【LeetCode】剑指 Offer 30. 包含min函数的栈
[LeetCode]剑指 Offer 30. 包含min函数的栈 文章目录 [LeetCode]剑指 Offer 30. 包含min函数的栈 一.辅助栈 一.辅助栈 解题思路: 普通栈的 push() ...
- 剑指 Offer 30. 包含min函数的栈 (python实现)
剑指 Offer 30. 包含min函数的栈 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min.push 及 pop 的时间复杂度都是 O(1). 示例 ...
- Python描述 LeetCode 剑指 Offer 30. 包含min函数的栈
Python描述 LeetCode 剑指 Offer 30. 包含min函数的栈 大家好,我是亓官劼(qí guān jié ),在[亓官劼]公众号.CSDN.GitHub.B站等平台分享一些技术 ...
最新文章
- 引起路由器重启的“元凶”
- 学业水平考试网登录_海南高中学业水平考试成绩查询免费登录入口:http://ea.hainan.gov.cn/(已开通)...
- 谈谈高并发系统的限流
- java-基础-ArrayList剖析
- 使用ElasticSearch,Kibana,ASP.NET Core和Docker可视化数据
- 虚拟语气和推测(二)
- HTML5+CSS+JQuery 实现简单的进度条功能
- DNGuard HVM 专业版 v2.7 正式发布。
- 计算机学院网络与新媒体,网络与新媒体专业课程描述.PDF
- mysql group_concat拼接字符串长度
- 天线匹配与人体之间的关系
- 办公技巧分享:如何把PDF转换成Word的5种方法
- 职场纵横:IT职位全面解析(计算机类要找工作的朋友多看看)
- 用SVM预测股票涨跌
- calico源码分析-ipam(2)
- MySQL数据库的主从同步和读写分离
- nodejs addon实现回调函数事件
- python 分类问题 画roc曲线实战
- 多设备monkey测试工具_基于Tkinter GUI操作
- 【ES】Elasticsearch 简介
热门文章
- LeetCode 812. 最大三角形面积(坐标面积公式)
- LeetCode 881. 救生艇(贪心,双指针)
- mysql 坚向变横向_(排班表一)使用SQL语句使数据从坚向排列转化成横向排列
- npm安装vue_vue搭建脚手架的方式
- 小大整数对象池及intern机制
- (二十六)【2021 WWW】Knowledge-Preserving Incremental Social Event Detection via Heterogeneous GNNs
- 真正的高阶特征交叉:xDeepFM与DCN-V2
- 人在斯坦福,刚上CS224n
- 美团数据库中间件DBProxy开源
- 论文浅尝 | 基于神经网络的知识推理