博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
最值栈
阅读量:7112 次
发布时间:2019-06-28

本文共 833 字,大约阅读时间需要 2 分钟。

    这个最简单了,就是用一个最大值栈和一个最小值栈来维护最值信息。

template
class stack_ext : public stack
{
public:
void push(const typename stack
::value_type &t)
{
if (m_sMax.empty() || t >= m_sMax.top())
{
m_sMax.push(t);
}
 
if (m_sMin.empty() || t <= m_sMin.top())
{
m_sMin.push(t);
}
 
stack
::push(t);
}
 
void pop()
{
if (!m_sMax.empty() && stack
::top() == m_sMax.top())
{
m_sMax.pop();
}
 
if (!m_sMin.empty() && stack
::top() == m_sMin.top())
{
m_sMin.pop();
}
 
stack
::pop();
}
 
typename stack
::const_reference max_val() const
{
return m_sMax.top();
}
 
typename stack
::const_reference min_val() const
{
return m_sMin.top();
}
 
private:
stack
m_sMin;
stack
m_sMax;
};

转载地址:http://vblhl.baihongyu.com/

你可能感兴趣的文章
查询设计分析
查看>>
OpenWRT/LEDE长期运行记录截图
查看>>
执行计划--WHERE条件的先后顺序对执行计划的影响
查看>>
F - 概率(经典问题)
查看>>
不老的神器:安全扫描器Nmap渗透使用指南【转】
查看>>
Java-NIO(六):Channel聚集(gather)写入与分散(scatter)读取
查看>>
CUBA如何新增ServiceBean
查看>>
【技术文档】jeecg3.7-maven搭建好开发环境入门
查看>>
centos7 关闭firewall安装iptables并配置
查看>>
搜索7--noi1804:小游戏
查看>>
聊一聊分布式锁的设计
查看>>
模运算的规则
查看>>
Nginx + Tomcat 动静分离实现负载均衡
查看>>
浏览器配置工具.bat
查看>>
Image Filter
查看>>
项目笔记:新增、编辑与删除
查看>>
前向星和链式前向星
查看>>
3.1软件体系结构风格
查看>>
LinkedHashMap 源码解析
查看>>
Linux系统centOS7在虚拟机下的安装及XShell软件的配置
查看>>