【剑指Offer】【栈】包含min函数的栈
题目:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的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函数的栈的更多相关文章
- 《剑指offer》 包含min函数的栈
本题来自<剑指offer> 包含min函数的栈 题目: 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 思路: 举例子让抽象问题具体 ...
- 剑指 Offer 30. 包含min函数的栈 + 双栈实现求解栈中的最小值
剑指 Offer 30. 包含min函数的栈 Offer_30 题目描述: 题解分析: 题目其实考察的是栈的知识,本题的目的是使用两个栈来求解最小值. 第二个栈主要用来维护第一个栈中的最小值,所以它里 ...
- 剑指 Offer 30. 包含min函数的栈
剑指 Offer 30. 包含min函数的栈 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min.push 及 pop 的时间复杂度都是 O(1). 示例 ...
- 力扣 - 剑指 Offer 30. 包含min函数的栈
题目 剑指 Offer 30. 包含min函数的栈 思路1 使用一个辅助栈min_stack,用来维护栈的最小的元素 每次添加元素入栈时候,data_stack和min_stack都要同时维护 dat ...
- 【剑指Offer】包含min函数的栈 解题报告
[剑指Offer]包含min函数的栈 解题报告 标签(空格分隔): 牛客网 题目地址:https://www.nowcoder.com/questionTerminal/beb5aa231adc45b ...
- 【Java】 剑指offer(30) 包含min函数的栈
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min ...
- Go语言实现:【剑指offer】包含min函数的栈
该题目来源于牛客网<剑指offer>专题. 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数. 时间复杂度应为O(1). Go语言实现: var myList = ...
- 每日一题 - 剑指 Offer 30. 包含min函数的栈
题目信息 时间: 2019-06-24 题目链接:Leetcode tag:栈 难易程度:简单 题目描述: 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 m ...
- 剑指OFFER之包含min函数的栈(九度OJ1522)
题目描述: 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数. 输入: 输入可能包含多个测试样例,输入以EOF结束. 对于每个测试案例,输入的第一行为一个整数n(1<=n&l ...
- 剑指Offer 20. 包含min函数的栈 (栈)
题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 题目地址 https://www.nowcoder.com/practice/4c77 ...
随机推荐
- react项目打包后点击index.html页面出现空白
当本地打包后的文件,直接通过文件路径访问,出现空白或者,提示打包后的build内的js,css文件路径错误,有以下两种方式 方式一(无网络限制的情况下使用): 1.全局安装serve启动本地服务: n ...
- 关于java业务限流组件的应用推广
可参考的链接如下: 限流算法对比.网关限流实践总结(https://segmentfault.com/a/1190000020745218) 高并发下常见的限流算法(https://www.jians ...
- JavaSE——遍历字符串与统计字符个数
package com.zhao.stringtest; import java.util.Scanner; public class test2 { //键盘录入一个字符串,统计该字符串中大写字母, ...
- 078_Sublime HaoIDE 搭建 Lightning Aura环境
随着 Classic 不断的向 1 .HaoIDE->Setting->User Setting 请把以下内容copy进去,修改账号密码token以及项目名称,例子中列举了两个Projec ...
- 容器逃逸 --with docker.sock
容器逃逸 --with docker.sock 本人对于容器逃逸的基本理解就是用户从容器中逃出去到宿主机里去了. 本文意在记录一个使用 docker.sock 来进行容器逃逸的方法. 首先随便来个镜像 ...
- spark structured streaming (结构化流) join 操作( 官方文档翻译)
spark 结构化流 join 连接 结构化流支持将流dataset/DataFrame与静态dataset/DataFrame,或者另一个流数据集-DataFrame连接起来.流式连接的结果是增量生 ...
- vue3 门户网站搭建7-eslint
为了方便阅读和维护,代码规范还是有必要的 1.安装:npm i eslint --save-dev 2.配置 .eslintrc.cjs 文件,增加 rules: rules: { 'semi': [ ...
- reduce()
from functools import reducea=[10,11,22,33]b=reduce(lambda x,y:x+y,a)<===>sum(a)print(b)
- 【rocky linux】firewalld切换到iptables 以及Failed to start IPv4 firewall with iptables.
关闭[firewalld],安装iptables并启动 #关闭自带 firewall systemctl stop firewalld systemctl mask firewalld#显示当前 fi ...
- 【Java学习Day03】JDK的卸载和JDK8的安装过程
卸载JDK 右键单击此电脑+R+高级系统设置+N 双击JAVA_HOME+F,删除子文件,再返回删除JAVA_HOME 双击Path,删除有关JAVA_HOMED变量,一直点击确定直至返回 打开CMD ...