class { public: MinStack() { } voidpush(int x){ st.push(x); if(st_min.empty()) st_min.push(x); else { if(x <= st_min.top()) st_min.push(x); } } voidpop(){ int n = st.top(); st.pop(); if(n == st_min.top()) { st_min.pop(); } } inttop(){ return st.top(); } intgetMin(){ int min = st_min.top(); return min; }
stack<int> st; stack<int> st_min; };
/** * 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.getMin(); */
近期评论