1.题目链接
力扣
2.解题思路
利用两个栈实现
3.代码
class MinStack {
public:
MinStack() {
//两个栈来实现
}
void push(int val) {
_st.push(val);
if (_minst.empty() || _minst.top() >= val)
{
_minst.push(val);
}
}
void pop() {
if (_st.top() == _minst.top())
_minst.pop();
_st.pop();
}
int top() {
return _st.top();
}
int getMin() {
return _minst.top();
}
stack<int> _st;
stack<int> _minst;
};
4.运行结果
【C++ OJ练习】9.最小栈 完