/** * Your MinStack object will be instantiated and called as such: * MinStack* obj = new MinStack(); * obj->push(x); * obj->pop(); * int param_3 = obj->top(); * int param_4 = obj->min(); */
classMinStack { public: /** initialize your data structure here. */ stack<int> s; int m = INT_MAX; MinStack() {
} voidpush(int x){ s.push(m); if(x < m) { m = x; } s.push(x); } voidpop(){ s.pop(); m = s.top(); s.pop(); } inttop(){ return s.top(); } intmin(){ return m; } };
/** * Your MinStack object will be instantiated and called as such: * MinStack* obj = new MinStack(); * obj->push(x); * obj->pop(); * int param_3 = obj->top(); * int param_4 = obj->min(); */