155. 最小栈

 1 class MinStack 
 2 {
 3     stack<int> data;
 4     stack<int> min_data;
 5 public:
 6     /** initialize your data structure here. */
 7     MinStack() {}
 8     
 9     void push(int x) 
10     {
11         data.push(x);
12         if(min_data.empty()) min_data.push(x);
13         else
14         {
15             if(x > min_data.top()) min_data.push(min_data.top());
16             else min_data.push(x);
17         }
18     }
19     
20     void pop() 
21     {
22         data.pop();
23         min_data.pop();
24     }
25     
26     int top() 
27     {
28         return data.top();
29     }
30     
31     int getMin() 
32     {
33         return min_data.top();
34     }
35 };
36 
37 /**
38  * Your MinStack object will be instantiated and called as such:
39  * MinStack* obj = new MinStack();
40  * obj->push(x);
41  * obj->pop();
42  * int param_3 = obj->top();
43  * int param_4 = obj->getMin();
44  */

 

posted @ 2020-04-03 14:34  Jinxiaobo0509  阅读(97)  评论(0)    收藏  举报