面试题30. 包含min函数的栈

题目:

 

 

解答:

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

 

posted @ 2020-05-09 15:13  梦醒潇湘  阅读(129)  评论(0)    收藏  举报