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.
class MinStack { int min; Stackstack; public MinStack() { stack = new Stack (); min = Integer.MAX_VALUE; } public void push(int x) { if(x <= min) { stack.push(min); min = x; } stack.push(x); } public void pop() { if(stack.isEmpty()) return; int temp = stack.pop(); if(temp == min && !stack.isEmpty()) { min = stack.pop(); } } public int top() { if(stack.isEmpty()) { return -1; } return stack.peek(); } public int getMin() { return min; } }
No comments:
Post a Comment