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

A:因为包含了入栈和出栈的操作,存储最小数的变量不能单单只是一个int的变量,应该用一个辅助栈来存储

  所以创建数据站存储入栈的数据,创建最小数栈存储最小数

  入栈:数据栈入栈,若最小栈为空 || value小于最小栈的顶元素,则把value入栈,否则再入一次栈顶元素

  出栈:如果栈有元素,则出栈

  取栈顶:返回数据栈栈顶

  取最小值:返回最小值栈栈顶  

class Solution {

public:
void push(int value)
{
s_data.push(value);
if((s_min.empty() == true) || (value < s_min.top()))
{
s_min.push(value);
}
else
{
s_min.push(s_min.top());
}
}
void pop()
{
if(s_data.top() > 0 && s_min.top() > 0)
{
s_min.pop();
s_data.pop();
}
}
int top()
{
return s_data.top();
}
int min()
{
return s_min.top();
}
private:
stack<int> s_data;
stack<int> s_min;
};

  

相关题目:

  最小栈:实现一个最小栈,有三种操作,min:得到栈中的最小值,push:在栈顶插入一个元素,pop:弹出栈顶元素,使这三种操作的时间复杂度都是O(1)

  获取n维数组的最大深度:输入参数为字符串型的n维数组,数组的每一项值为数组 或 int型数字。请实现一个函数,可以获取列表嵌套列表的最大深度为多少。

  中缀表达式转后缀表达式:将中缀表达式转为后缀表达式,输入 a+b*c/d-a+f/b 输出 abc*d/+a-fb/+

【剑指Offer】【栈】包含min函数的栈的更多相关文章

  1. 《剑指offer》 包含min函数的栈

    本题来自<剑指offer> 包含min函数的栈 题目: 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 思路: 举例子让抽象问题具体 ...

  2. 剑指 Offer 30. 包含min函数的栈 + 双栈实现求解栈中的最小值

    剑指 Offer 30. 包含min函数的栈 Offer_30 题目描述: 题解分析: 题目其实考察的是栈的知识,本题的目的是使用两个栈来求解最小值. 第二个栈主要用来维护第一个栈中的最小值,所以它里 ...

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

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

  4. 力扣 - 剑指 Offer 30. 包含min函数的栈

    题目 剑指 Offer 30. 包含min函数的栈 思路1 使用一个辅助栈min_stack,用来维护栈的最小的元素 每次添加元素入栈时候,data_stack和min_stack都要同时维护 dat ...

  5. 【剑指Offer】包含min函数的栈 解题报告

    [剑指Offer]包含min函数的栈 解题报告 标签(空格分隔): 牛客网 题目地址:https://www.nowcoder.com/questionTerminal/beb5aa231adc45b ...

  6. 【Java】 剑指offer(30) 包含min函数的栈

    本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min ...

  7. Go语言实现:【剑指offer】包含min函数的栈

    该题目来源于牛客网<剑指offer>专题. 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数. 时间复杂度应为O(1). Go语言实现: var myList = ...

  8. 每日一题 - 剑指 Offer 30. 包含min函数的栈

    题目信息 时间: 2019-06-24 题目链接:Leetcode tag:栈 难易程度:简单 题目描述: 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 m ...

  9. 剑指OFFER之包含min函数的栈(九度OJ1522)

    题目描述: 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数. 输入: 输入可能包含多个测试样例,输入以EOF结束. 对于每个测试案例,输入的第一行为一个整数n(1<=n&l ...

  10. 剑指Offer 20. 包含min函数的栈 (栈)

    题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 题目地址 https://www.nowcoder.com/practice/4c77 ...

随机推荐

  1. MapReduce原理——切片代码分析

    (1)程序先找到数据存储的目录 (2)遍历目录对每个文件进行切片 (3)遍历一个文件: 获取文件大小 计算切片大小 默认情况下,切片大小等于blocksize 每次切片时都要判断剩下部分师否大于块的1 ...

  2. Hello,Golang

    Hello,Golang 一.开发环境搭建 1. 下载 SDK 1 // Go官网下载地址 2 https://golang.org/dl/ 3 ​ 4 // Go官方镜像站(推荐) 5 https: ...

  3. antd 动态添加表格列 表格不更新

    原因:react 对比columns 数组为原数组,内存地址没变: 解决办法:用es6的扩展,生成新数组,添加操作列operateCol setTableColumns([...tableColums ...

  4. Mysql-不同场景下操作/查询数据库表

    1. 通过关联字段把一张表的字段值更新另一张表的字段值 update table_a a, table_b b set a.username = b.username where a.id = b.i ...

  5. HANDLE和HMOUDLE、HWND讲解

    HWND是线程相关的,通常指明窗口句柄,通过句柄找到窗口所属进程和线程 Handle 是代表系统的内核对象,如文件句柄,线程句柄,进程句柄.系统对内核对象以链表的形式进行管理,载入到内存中的每一个内核 ...

  6. iis url重写实现http 重定向到 https

    原文链接 http://www.360doc.com/content/21/0915/21/67180130_995651104.shtml 1.在iis上安装 url重写组件 2. 修改web.co ...

  7. 小程序微信支付完整demo,包含退款

    最近刚完成一个商场小程序(http://market.zhenzikj.com/detail/121.html), 使用到了微信支付功能,其中遇到了很多的抗,所以,我把支付这块摘出来,以免大家少走弯路 ...

  8. 关于WPF的圆角

    失败案例 <Border CornerRadius="3" Width="100" Height="100"> <Stac ...

  9. DSP(数字信号处理)与监控摄像机相关技术解读

    提起安防领域,我们第一个想到的应该就是监控摄像机了,它对于安防的重要性,就像人的眼睛对于人的作用一样,是重要的信息获取来源. 监控摄像机广泛应用于学校.公司.银行.交通.平安城市等多个安保领域. 广州 ...

  10. python 操作 ES 一、基础操作

    示例代码环境 python:3.8 es:7.8.0环境安装 pip install elasticsearch==7.8.0 from elasticsearch import Elasticsea ...