题目描述

定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
 
题解:
  借助辅助栈,新的数据<=f辅助栈顶时,就压入辅助栈,这样,就能保证辅助找栈顶永远是最小数。
 
  

 class Solution {
public:
void push(int value) {
dataS.push(value);
if (dataMin.empty() || dataMin.top() >= value)
dataMin.push(value);
}
void pop() {
if (dataS.top() == dataMin.top())
dataMin.pop();
dataS.pop();
}
int top() {
return dataS.top();
}
int min() {
return dataMin.top();
}
private:
stack<int>dataS, dataMin;
};

最新文章

  1. js控制台输出console
  2. 《Linux内核设计与实现》读书笔记 第十八章 调试
  3. 【CentOS】文件与目录管理
  4. 二、JavaScript语言--JS实践--商城分类导航效果
  5. ACM 房间安排
  6. 工作中使用的html5和css3 新特性
  7. [ html canvas putImageData ] canvas绘图属性 putImageData 属性讲解
  8. I.MX6 bootargs 内核参数设定
  9. 深入理解shared pool共享池之library cache系列一
  10. Hadoop分布式文件系统HDFS详解
  11. android代码签名和混乱的包装
  12. deeplearning.ai 人工智能行业大师访谈 Ruslan Salakhutdinov 听课笔记
  13. Windows Server2012R2 添加Microsoft .NET Framework 3.5 功能失败的解决方法
  14. Error:Execution failed for task &#39;:app:processDebugManifest&#39;. Manifest merger failed with multiple errors, see logs
  15. Android Studio 常用快捷键及常用设置
  16. inf 启动
  17. (转载)SendKeys.Send()的使用
  18. canvas之画一条线段
  19. HDU3552(贪心)
  20. Oracle使用row_number()函数查询时增加序号列

热门文章

  1. Vue2.0源码思维导图-------------Vue 构造函数、原型、静态属性和方法
  2. jdk环境配置-windows 10
  3. goroutine 需要注意的一个小细节
  4. 如何禁止C++默认成员函数
  5. 关于RF中元素定位问题
  6. Centos7 安装 telnet 服务
  7. Gradle任务
  8. 【三】Jmeter接口自动化测试系列之Http接口自动化实战
  9. centOs7 java启动jar 并部署到nginx
  10. 商城sku的选择功能--客户端