面试题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 */

浙公网安备 33010602011771号