题目描述:
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
解题思路:
构建一个辅助栈stack2,用来存放当前的最小值。
代码:
class Solution
{
public:
stack<int> stack1,stack2; //stack2是一个辅助栈,用于存放当前最小值
void push(int value)
{
stack1.push(value);
if(stack2.empty())
stack2.push(value);
else if (value<stack2.top())
stack2.push(value);
else
{
stack2.push(stack2.top());
}
}
void pop()
{
stack1.pop();
stack2.pop();
}
int top()
{
return stack1.top();
}
int min()
{
return stack2.top();
}
};