题目描述:()
Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.
- push(x) -- Push element x onto stack.
- pop() -- Removes the element on top of the stack.
- top() -- Get the top element.
- getMin() -- Retrieve the minimum element in the stack.
解题思路:
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 elems;26 stack minElems;27 };