Catalogue
Question
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.
Explanation
Using an addition list to the minimum value every time the stack is updated. Therefore, getMin()
will not take O(n) time complexity. Appending the new value to the end of the list will reduce the complexity of changing the stack.
Code
1 | class MinStack(object): |