#include<iostream>
#include<stack>
using namespace std;
class Solution{
public:
stack<int> data;//数据栈
stack<int> mins;//最小值栈
int top() {
return data.top();//返回数据栈栈顶
}
int getMin() {
return mins.top();//返回最小值栈栈顶
}
void push(int x) {
data.push(x);
if (!mins.empty() && x > mins.top()) {
x = mins.top();
}//假设我传入数据3,如何最小值栈顶为-8
//3>-8,那么就拿-8放入最小值栈作为栈顶
mins.push(x);
}
void pop() {
data.pop();
mins.pop();
}
};
int main() {
Solution s;
s.push(-3);
cout << s.getMin() << endl;
s.push(6);
cout << s.getMin() << endl;
s.push(-8);
cout << s.getMin() << endl;
s.push(9);
cout << s.getMin() << endl;
return 0;
}