题目
包含min函数的栈
时间限制:1秒 空间限制:32768K 热度指数:180971
本题知识点: 栈
题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
解法
代码
class Solution {
public:
stack<int> data;
stack<int> mins;
void push(int value) {
data.push(value);
if(mins.empty())
mins.push(value);
else
{
if(value<mins.top())
mins.push(value);
else
mins.push(mins.top());
}
}
void pop() {
if(!data.empty())
{
data.pop();
mins.pop();
}
}
int top() {
if(!data.empty())
return data.top();
else
throw "empty!";
}
int min() {
if(!mins.empty())
return mins.top();
else
throw "empty!";
}
};