用栈存对组 first为元素,second为当前栈内最小值
class MinStack {
stack<pair<int, int>> st;
public:
MinStack() {
}
void push(int x) {
if(st.size() == 0)
st.push({x,x});
else
st.push({x,min(x,st.top().second)});
}
void pop() {
st.pop();
}
int top() {
return st.top().first;
}
int getMin() {
return st.top().second;
}
};