定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 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)相关推荐

  1. 剑指offer面试题30. 包含min函数的栈(辅助栈)

    题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min.push 及 pop 的时间复杂度都是 O(1). 思路 详见链接 代码 class Min ...

  2. 剑指offer面试题[21]包含min函数的栈

    题目: 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数. 分析: 看到这个问题,我们的第一反应可能是每次压入一个新元素进栈时,将栈里所有的元素排序,让最小的元位于栈顶,这样就能在 ...

  3. 剑指offer(20)包含min函数的栈

    import java.util.Stack;public class Solution {//创建俩个辅助栈,stack1用来存放压入的元素,stack2用来保存较小元素Stack<Integ ...

  4. 《LeetCode力扣练习》剑指 Offer 30. 包含min函数的栈 Java

    <LeetCode力扣练习>剑指 Offer 30. 包含min函数的栈 Java 一.资源 题目: 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调 ...

  5. 剑指offer:面试题30. 包含min函数的栈

    题目:包含min函数的栈 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min.push 及 pop 的时间复杂度都是 O(1). MinStack min ...

  6. 【剑指offer-Java版】21包含min函数的栈

    包含min操作的栈:在基本栈基础上提供一个Min功能,可以取得当前栈的最小值 重点在于思路,拿空间换取了Min的功能,申请一个等量空间的辅助栈用于存取栈中的最小元素 public class _Q21 ...

  7. 面试题 03.02. 栈的最小值/面试题30. 包含min函数的栈/155. 最小栈

    2020-05-10 1.题目描述 栈的最小值 2.题解 需要牺牲空间换时间,可以用vector来存储至当前元素的最小值,在push或者pop元素的时候需要更新. 3.代码 class MinStac ...

  8. 【LeetCode】剑指 Offer 30. 包含min函数的栈

    [LeetCode]剑指 Offer 30. 包含min函数的栈 文章目录 [LeetCode]剑指 Offer 30. 包含min函数的栈 一.辅助栈 一.辅助栈 解题思路: 普通栈的 push() ...

  9. 剑指 Offer 30. 包含min函数的栈 (python实现)

    剑指 Offer 30. 包含min函数的栈 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min.push 及 pop 的时间复杂度都是 O(1). 示例 ...

  10. Python描述 LeetCode 剑指 Offer 30. 包含min函数的栈

    Python描述 LeetCode 剑指 Offer 30. 包含min函数的栈   大家好,我是亓官劼(qí guān jié ),在[亓官劼]公众号.CSDN.GitHub.B站等平台分享一些技术 ...

最新文章

  1. 引起路由器重启的“元凶”
  2. 学业水平考试网登录_海南高中学业水平考试成绩查询免费登录入口:http://ea.hainan.gov.cn/(已开通)...
  3. 谈谈高并发系统的限流
  4. java-基础-ArrayList剖析
  5. 使用ElasticSearch,Kibana,ASP.NET Core和Docker可视化数据
  6. 虚拟语气和推测(二)
  7. HTML5+CSS+JQuery 实现简单的进度条功能
  8. DNGuard HVM 专业版 v2.7 正式发布。
  9. 计算机学院网络与新媒体,网络与新媒体专业课程描述.PDF
  10. mysql group_concat拼接字符串长度
  11. 天线匹配与人体之间的关系
  12. 办公技巧分享:如何把PDF转换成Word的5种方法
  13. 职场纵横:IT职位全面解析(计算机类要找工作的朋友多看看)
  14. 用SVM预测股票涨跌
  15. calico源码分析-ipam(2)
  16. MySQL数据库的主从同步和读写分离
  17. nodejs addon实现回调函数事件
  18. python 分类问题 画roc曲线实战
  19. 多设备monkey测试工具_基于Tkinter GUI操作
  20. 【ES】Elasticsearch 简介

热门文章

  1. LeetCode 812. 最大三角形面积(坐标面积公式)
  2. LeetCode 881. 救生艇(贪心,双指针)
  3. mysql 坚向变横向_(排班表一)使用SQL语句使数据从坚向排列转化成横向排列
  4. npm安装vue_vue搭建脚手架的方式
  5. 小大整数对象池及intern机制
  6. (二十六)【2021 WWW】Knowledge-Preserving Incremental Social Event Detection via Heterogeneous GNNs
  7. 真正的高阶特征交叉:xDeepFM与DCN-V2
  8. 人在斯坦福,刚上CS224n
  9. 美团数据库中间件DBProxy开源
  10. 论文浅尝 | 基于神经网络的知识推理