题目链接:155.最小栈
关键字:栈
解题思路
- 使用两个栈,其中一个正常存取数据,另外一个存储对应栈大小时的最小值
class MinStack {
public:
/** initialize your data structure here. */
MinStack() {
}
void push(int x) {
store_stack.push(x);
if(min_stack.empty())
min_stack.push(x);
else
{
if(x < min_stack.top())
min_stack.push(x);
else
min_stack.push(min_stack.top());
}
}
void pop() {
if(!store_stack.empty())
{
store_stack.pop();
min_stack.pop();
}
}
int top() {
return store_stack.top();
}
int getMin() {
return min_stack.top();
}
private:
std::stack<int> store_stack;
std::stack<int> min_stack;
};