题目描述:
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。

解题思路:
构建一个辅助栈stack2,用来存放当前的最小值。

代码:

class Solution
{public:stack<int> stack1,stack2;    //stack2是一个辅助栈,用于存放当前最小值void push(int value){stack1.push(value);if(stack2.empty())stack2.push(value);else if (value<stack2.top())stack2.push(value);else{stack2.push(stack2.top());}}void pop(){stack1.pop();stack2.pop();}int top(){return stack1.top();}int min(){return stack2.top();}
};

《剑指offer》面试题21——包含min函数的栈(C++)相关推荐

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

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

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

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

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

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

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

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

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

    剑指offer--面试题21:包含min函数的栈 Solution1: 辅助栈! 逻辑上要想清楚..但是用栈结构来实现栈,目的不知为何... class Solution { public:void ...

  6. 剑指offer——面试题7:用两个栈实现队列

    剑指offer--面试题7:用两个栈实现队列 Solution1: 注意栈的基本操作与vector略有不同~ class Solution { public:void push(int node) { ...

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

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

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

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

  9. [剑指offer]面试题7:用两个栈实现队列

    面试题7:用两个栈实现队列 题目:用两个栈实现一个队列.队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能. 用两个栈模 ...

  10. [剑指offer]面试题1:赋值运算符函数

    面试题1:赋值运算符函数 题目:如下为类型CMyString的声明,请为该类型添加赋值运算符函数. class CMyString {public:CMyString(char *pData = nu ...

最新文章

  1. Windows 10如何启用ReFS弹性文件系统
  2. linux 系统 安装 nginx 服务
  3. react(82)--方法写在effects里面
  4. 前端学习(2457):文章发布
  5. python3 上传文件到目标机器_Python3 +服务器搭建私人云盘,再也不怕限速了
  6. CSS 浅析position:relative/absolute定位方式
  7. 一、optimizer_trace介绍
  8. 利用纯CSS3实现超立体的3D图片侧翻倾斜效果
  9. php mysql delete_PHP MySQL Delete
  10. Oracle 获取汉字拼音首字母
  11. Java之映射(map)
  12. Arduino学习笔记(2)-- Arduino基本函数
  13. 安装Bouncy Castle(JAVA)
  14. Pyhton opencv 图片裁剪
  15. java实现sug,Java SuggestionResult類代碼示例
  16. ENVI_建模工具的使用——以“指数计算”批处理为例
  17. WebRTC学习实现视频
  18. python 并发 数据库_python写入mysql数据库
  19. 下列叙述中正确的是计算机课,大学计算机课程练习题(期末)
  20. 小米8手机相册中的图片怎么识别文字?

热门文章

  1. 手机电源键关不了屏幕_没有home键iphone强关机,关机你会吗?小的快来!
  2. 学python对excel有用吗_程序员必修课:为什么非要用Python做数据分析?Excel不好吗?...
  3. ROS学习记录:在ROS的Rviz下完成摄像头的视频显示
  4. java求实数的整数部分和小数部分_输入一个浮点数,并输出该数的整数部分和小数部分...
  5. mysql锁表查询_如何通过自动增加索引,实现数据库查询耗时降低50%?
  6. flash代码_Flash如何处理常见的代码错误(AS3)(2)
  7. React:工程化开发
  8. 设计模式(6)——命令模式
  9. table与tr td样式重叠 table样式边框变细
  10. pyspark使用anaconda后spark-submit方法(本人对其他文章进行的补充)