155. Min Stack (C++ vector)
阿新 • • 發佈:2018-12-11
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.
Example:
MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0); minStack.push(-3); minStack.getMin(); --> Returns -3. minStack.pop(); minStack.top(); --> Returns 0. minStack.getMin(); --> Returns -2.
class MinStack { public: /** initialize your data structure here. */ MinStack() { } void push(int x) { val.push_back(x); } void pop() { val.erase(val.end()-1); } int top() { int len = val.size(); return val[len-1]; } int getMin() { int min = val[0]; if(val.size() == 0) return -1; else { for(int i = 1; i < val.size(); i++) { if(val[i] < min) { min = val[i]; } } } return min; } private: vector<int> val; };