题目:

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

知识点:

  • 这种需要持续输出最小或最大的数的解决办法之一:引入辅助栈

注意:

代码实现:

借助辅助栈(栈顶元素即为最小值)来保存 每一步操作之后正常栈中最小的数 。

/*包含min函数的栈*/
stack<int> m_data;
stack<int> m_min;//压入的时候,数据栈正常压入,最小栈需要比较栈顶元素(即最小元素)与压入元素的大小
void push(int value) {m_data.push(value);//min栈为空,直接压入if (m_min.empty()){m_min.push(value);}//不空,判断value与min栈顶大小else {if (m_min.top() > value) m_min.push(value);elsem_min.push(m_min.top());}
}
void pop() {m_data.pop();m_min.pop();
}
int top() {return m_data.top();
}
int min() {int res = m_min.top();return res;
}

剑指offer——30.包含min函数的栈相关推荐

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

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

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

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

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

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

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

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

  5. 【简洁写法】剑指 Offer 30. 包含min函数的栈

    立志用最少的代码做最高效的表达 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min.push 及 pop 的时间复杂度都是 O(1). 示例: MinSt ...

  6. 剑指Offer 30.包含 min 函数的栈(Python)

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

  7. 【算法】剑指 Offer 30. 包含min函数的栈

    文章目录 1.概述 2.分析 3. 链表法 4. 双栈法 1.概述 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/bao-han-minhan ...

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

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

  9. 剑指 Offer 30. 包含min函数的栈(python3编写)

    目录 1.题目描述: 2.方法: 思路: 代码: 1.题目描述: 2.方法: 思路: 思路来源:https://leetcode-cn.com/problems/bao-han-minhan-shu- ...

最新文章

  1. 是时候了解一下Serverless了
  2. pc端汽车obd软件下载?_常用的ERP软件电脑端下载
  3. 网络推广产品中网站的标题如何设置更利于SEO?
  4. 3.9 降低DFT泄露的一种办法---加窗
  5. Linux(Ubuntu)下嵌入式gdb调试环境
  6. linux网络唤醒,如何在Ubuntu Server 18.04中启用网络唤醒(WOL)
  7. 项目管理工具project软件学习(四) - 日历保存为模板、日历重命名、删除
  8. 基于主从博弈的电热综合能源系统动态定价与能量管理 主要做的是电热综合能源系统的动态定价问题,采用是主从博弈方法
  9. TarBase:有实验数据支持的miRNA靶基因数据库
  10. 射频电路设计中的热量分析
  11. Qt基于FFmpeg解码本地视频后再编码
  12. Word自动给图片编号
  13. Docker从基础到企业生产应用学习笔记大总结
  14. 数据通信基础之双绞线
  15. 2018携程校招笔试第二道编程题
  16. c语言打鱼晒网问题报告书,2021年C语言渔夫打鱼晒网问题.pdf
  17. 如何右键菜单添加命令提示符_在右键菜单顶部添加过滤器命令
  18. VIVO手机测试指令代码大全
  19. 常用的前端在线引用JS
  20. 关于x86、x86-64、x64、i386、i486、i586和i686等名词的解释

热门文章

  1. IO之流程与buffer 图
  2. BZOJ-1002 轮状病毒 高精度加减+Kirchhoff矩阵数定理+递推
  3. NSInvocation的一种用法
  4. 诺基亚:Symbian 3操作系统拥有多点触控功能
  5. 报错:content type application/x-www-form-urlencoded;
  6. SuseLinux详解(2)——网络设置静态IP 网关 DNS的方法
  7. [转]【人是怎么废掉的?】
  8. c语言字符数组的应用编程,C语言基础(一)
  9. )AIR程序打包/绿化,脱离air runtimes(AIR运行环境)的方法
  10. python画散点图带直线和图例_带图例的Matplotlib散点图