剑指offer——30包含min函数的栈
2024-09-03 00:43:41
题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的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;
};
最新文章
- js控制台输出console
- 《Linux内核设计与实现》读书笔记 第十八章 调试
- 【CentOS】文件与目录管理
- 二、JavaScript语言--JS实践--商城分类导航效果
- ACM 房间安排
- 工作中使用的html5和css3 新特性
- [ html canvas putImageData ] canvas绘图属性 putImageData 属性讲解
- I.MX6 bootargs 内核参数设定
- 深入理解shared pool共享池之library cache系列一
- Hadoop分布式文件系统HDFS详解
- android代码签名和混乱的包装
- deeplearning.ai 人工智能行业大师访谈 Ruslan Salakhutdinov 听课笔记
- Windows Server2012R2 添加Microsoft .NET Framework 3.5 功能失败的解决方法
- Error:Execution failed for task &#39;:app:processDebugManifest&#39;. Manifest merger failed with multiple errors, see logs
- Android Studio 常用快捷键及常用设置
- inf 启动
- (转载)SendKeys.Send()的使用
- canvas之画一条线段
- HDU3552(贪心)
- Oracle使用row_number()函数查询时增加序号列