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

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

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

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;
};

转载于:https://www.cnblogs.com/codingmylife/archive/2012/09/12/2681350.html

你可能感兴趣的文章
一道不知道哪里来的容斥题
查看>>
Blender Python UV 学习
查看>>
window添加右键菜单
查看>>
入手腾龙SP AF90mm MACRO
查看>>
Window7上搭建symfony开发环境(PEAR)
查看>>
Linux内核态、用户态简介与IntelCPU特权级别--Ring0-3
查看>>
第23月第24天 git命令 .git-credentials git rm --cached git stash clear
查看>>
java SE :标准输入/输出
查看>>
一些方便系统诊断的bash函数
查看>>
jquery中ajax返回值无法传递到上层函数
查看>>
css3之transform-origin
查看>>
[转]JavaScript快速检测浏览器对CSS3特性的支持
查看>>
Master选举原理
查看>>
[ JAVA编程 ] double类型计算精度丢失问题及解决方法
查看>>
小别离
查看>>
微信小程序-发起 HTTPS 请求
查看>>
WPF动画设置1(转)
查看>>
基于node/mongo的App Docker化测试环境搭建
查看>>
秒杀9种排序算法(JavaScript版)
查看>>
struts.convention.classes.reload配置为true,tomcat启动报错
查看>>