Zero To DSAZero To DSA
Privacy Policy路FAQ路Report a Bug路Support on Ko鈥慺i
Valid ParenthesesDaily Temperatures

Min Stack

medium
Time: O(1)
Space: O(n)

Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.

C#C#
public class MinStack {
    private Stack<(int val, int min)> stack = new();

    public void Push(int val) {
        // TODO: implement your solution here
    }

    public void Pop() {
        // TODO: implement your solution here
    }

    public int Top() {
        // TODO: implement your solution here
        return 0;
    }

    public int GetMin() {
        // TODO: implement your solution here
        return 0;
    }
}

Constraints

  • pop, top, and getMin will always be called on non-empty stacks.

Examples

Input: MinStack minStack = new MinStack(); minStack.Push(-2); minStack.Push(0); minStack.Push(-3); minStack.GetMin(); // return -3 minStack.Pop(); minStack.Top(); // return 0 minStack.GetMin(); // return -2
Output: null
Implement the MinStack class.