标签:
题目描述:(链接)
Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.
解题思路:
1 class MinStack { 2 public: 3 void push(int x) { 4 elems.push(x); 5 if (minElems.empty() || minElems.top() >= x) { 6 minElems.push(x); 7 } 8 } 9 10 void pop() { 11 if (elems.top() == minElems.top()) { 12 minElems.pop(); 13 } 14 elems.pop(); 15 } 16 17 int top() { 18 return elems.top(); 19 } 20 21 int getMin() { 22 return minElems.top(); 23 } 24 private: 25 stack<int> elems; 26 stack<int> minElems; 27 };
标签:
原文地址:http://www.cnblogs.com/skycore/p/4905939.html