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

Solution1:
辅助栈!
逻辑上要想清楚。。但是用栈结构来实现栈,目的不知为何。。。

class Solution {
public:void push(int value) {data.push(value);if(data_min.empty()){ //辅助栈为空,则value直接压入辅助栈data_min.push(value);}else { //辅助栈非空,int stack_min = std::min(data_min.top(),value);data_min.push(stack_min);}return;}void pop() {data.pop();data_min.pop();return;}int top() {return data.top();}int min() {return data_min.top();}
private:stack<int> data;stack<int> data_min;
};

剑指offer——面试题21:包含min函数的栈相关推荐

  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——面试题7:用两个栈实现队列

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

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

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

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

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

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

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

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

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

最新文章

  1. 自学编程是从python语言还是c语言开始-初中生想学编程,请问先学C语言好还是先学Python?...
  2. LinkedList源码剖析
  3. PHP实现简单文件上传系统
  4. 【图精】徐克镜头里的十大美人
  5. python-excel 批量新建excel工作表
  6. vue+elementui搭建后台管理界面(6登录和菜单权限控制)
  7. 日志查看工具 logviewer pro的使用
  8. kde下gwenview启动慢,甚至几十秒才能启动
  9. 精选目标检测3——yolo1、yolo2、yolo3和SSD的网络结构汇总对比
  10. C语言-打印菱形三角形等图形
  11. 2022 Google IO大会新技术
  12. [CTF攻防世界] WEB区 关于备份的题目
  13. 32位和64位CPU操作系统的区别
  14. WebVTT字幕格式
  15. 浅识Flutter 基本组件之showDatePicker方法
  16. 1到100的偶数之和是多少_求1到100之间所有偶数之和
  17. Spring 学习笔记(day02)
  18. 手里有200万,如何理财
  19. 将dicom的ct值归一到(0,255)
  20. linux禁用打印切换服务命令行,linux下启用或禁用打印机的打印操作

热门文章

  1. (七)图像处理中常用算子Laplacian\Sobel\Roberts\Prewitt\Kirsch
  2. html 星空效果,html5 canvas炫酷旋转银河系星空背景特效
  3. java.sql找不到_java.sql.SQLException:找不到适用于jdbc:microsoft:
  4. android 初始化变量,变量初始化 - Android Studio
  5. 路由器上的usb接口有什么用_路由器上面的USB接口有什么用途,你都知道吗?
  6. python 返回函数 闭包_python中闭包Closure函数作为返回值的方法示例
  7. typora html代码无效,Typora优化-适合不懂CSS代码的小白
  8. java miniui datagrid_miniui datagrid 的客户端分页解决方案
  9. python提取表里数据_python提取分析表格数据
  10. trie树的数据结构_C / C ++中的Trie数据结构