实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值。

你实现的栈将支持pushpop 和 min 操作,所有操作要求都在O(1)时间内完成。

建一个栈helpStack,用来存放从开始到目前位置的最小值,

 1 /**
 2  * lintcode12:带最小值操作的栈
 3  * 狗剩的美丽家园
 4  * 2017年12月4日15:33:23
 5  */
 6
 7 class MinStack {
 8 public:
 9     stack<int> mainStack;
10     stack<int> helpStack;
11     MinStack() {
12         // do initialization if necessary
13     }
14
15     void push(int number) {
16         // write your code here
17         int top;
18         mainStack.push(number);
19
20         if (!helpStack.empty()) {
21             top = helpStack.top();
22         } else {
23             top = number;
24         }
25
26         if (number > top) {
27             helpStack.push(top);
28         } else {
29             helpStack.push(number);
30         }
31     }
32
33     int pop() {
34         // write your code here
35         if (!mainStack.empty()) {
36             int data = mainStack.top();
37             mainStack.pop();
38             helpStack.pop();
39             return data;
40         }
41     }
42
43     int min() {
44         // write your code here
45         if (!helpStack.empty()) {
46             int data = helpStack.top();
47             return data;
48         }
49     }
50 };

转载于:https://www.cnblogs.com/gousheng/p/7977492.html

lintcode12 带最小值操作的栈相关推荐

  1. LeetCode 1381. 设计一个支持增量操作的栈(deque/数组)

    1. 题目 请你设计一个支持下述操作的栈. 实现自定义栈类 CustomStack : CustomStack(int maxSize):用 maxSize 初始化对象,maxSize 是栈中最多能容 ...

  2. 1381. 设计一个支持增量操作的栈

    2020-05-11 1.题目描述 设计一个支持增量操作的栈 2.题解 使用vector在进行增量操作的时候会方便一些,vector支持push_back.pop_back.empty操作. 3.代码 ...

  3. LeetCode 5357. 设计一个支持增量操作的栈

    5357. 设计一个支持增量操作的栈 思路:用数组实现即可 class CustomStack { public:CustomStack(int maxSize) {fill(a,a+1001,-1) ...

  4. 栈操作与栈帧 (转)

    结构化程序的一个最基本的单元就是"函数"或者叫"过程".在汇编这一层自然也相应的有支持这些概念的指令操作,如栈操作和栈帧的概念. 首先这里要为"打开汇 ...

  5. 怪蛙带你通全栈 第8讲:电路设计之电路焊接(从这来看,焊接有焊锡膏挺简单的,涂上然后热风枪吹就可以了。)

    从这来看,焊接有焊锡膏挺简单的,涂上然后热风枪吹就可以了. 转载自:https://mp.weixin.qq.com/s/I_RjVYyBJJwkcwVPsXX1Kw 怪蛙带你通全栈 第8讲:电路设计 ...

  6. 栈和队列之设计一个有getMin(得到最小值)功能的栈

    有2中方案,分别用类和内部类实现了 import java.util.Stack;/*** @author chenyu 第一种设计:* 题目:设计一个有getMin功能的栈,设计一个特殊的栈,在实现 ...

  7. 八、栈的操作、栈空间

    注:栈是进行字操作的,非字节.1个字等于两个字节,比如ax一个字分ah和al两个字节. 先进后出,后进先出 栈指令 栈规则先进后出的图像未过程简易图入栈 push:寄存器 例如:push ax //将 ...

  8. STM32中的位带(bit-band)操作

    转:http://blog.csdn.net/gaojinshan/article/details/11479929 //位带操作,实现51类似的GPIO控制功能 //具体实现思想,参考<< ...

  9. 数据结构——栈(栈结构、栈面试题、栈的操作、栈结构实现、进制的转换)

    目录 一.栈结构 二.栈面试题 四.栈的操作 1.push方法 2.pop方法 3.peek方法 4.isEmpty方法 5.size方法 五.栈结构实现 六.十进制转二进制 七.二进制.十六进制.十 ...

最新文章

  1. oracle sql 获取本季度所有月份,上季度所有月份
  2. mysql 备份表_MySQL中表的复制以及大型数据表的备份教程
  3. linux下文件权限管理
  4. 剑指offer之二叉搜索树的第K个节点
  5. 【CodeForces - 349B】Color the Fence (贪心,填数)
  6. 13-Mybatis 注解开发
  7. Python使用多进程批量判断素数
  8. oracle数据库内容替换,国产数据库能否替换oracle数据库?
  9. [转]Linux下用gcc/g++生成静态库和动态库(Z)
  10. uniapp连接蓝牙电子秤
  11. Linux下安装Nginx与配置
  12. java云之家发送信息_开发文档:考勤信息api - 云之家·开放平台
  13. 谷歌翻译函数C#代码实现
  14. KVC中setValue:forKey:实现原理
  15. 计算机网络计算下一跳
  16. Docker容器技术与应用(项目1 Docker容器简介)
  17. 【SpringBoot】十八、拦截器 interceptor
  18. 毒蘑菇导航,感觉不像是毒蘑菇,更像是个树莓了。
  19. 学生个人网页设计作品 学生个人网页模板简单个人主页成品 个人网页制作 HTML学生个人网站作业设计
  20. 第十一届蓝桥杯大赛决赛赛题 C++ 大学C组

热门文章

  1. 线性表的顺序存储的基本操作
  2. sql查询无结果返回空_3分钟短文 | Laravel 查询结果检查是不是空,5个方法你别用错...
  3. flash动画设计期末作业_「2019年下学期」第二十五二十六节:期末作品三-吉祥物设计...
  4. JS高级——内存管理和闭包
  5. python网络爬虫系列(六)——数据提取 lxml模块
  6. LeetCode 2150. 找出数组中的所有孤独数字(哈希)
  7. 02.改善深层神经网络:超参数调试、正则化以及优化 W1.深度学习的实践层面(作业:初始化+正则化+梯度检验)
  8. 前端:实现手机左右滑动效果
  9. 从零开始,手把手交给你vue如何新建一个项目
  10. python中的深浅拷贝