Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.
MinStack(): Initialize the stack.
push(val): Push val onto the stack.
pop(): Remove the top element.
top(): Get the top element.
getMin(): Retrieve the minimum element.
All operations must work in time.
Constraints: . Up to operations.