Минимальный стек

MediumAlgo
05:00
Лучше работает на десктопе
StackDesign

Реализуйте стек, который поддерживает операции push, pop, top и getMin за O(1).

На вход подаётся список операций. Каждая операция — список:
- ["push", x] — положить x в стек
- ["pop"] — удалить верхний элемент
- ["top"] — вернуть верхний элемент
- ["getMin"] — вернуть минимальный элемент в стеке

Верните список результатов для операций top и getMin. Операции push и pop не возвращают значение.

Сигнатура

def min_stack_operations(ops: list[list]) -> list:

Примеры

min_stack_operations([["push", -2], ["push", 0], ["push", -3], ["getMin"], ["pop"], ["top"], ["getMin"]])
→ [-3, 0, -2]

Constraints

- 1 ≤ len(ops) ≤ 3 × 10⁴
- -2³¹ ≤ val ≤ 2³¹ - 1
- pop, top, getMin вызываются только на непустом стеке

Примеры

Пример 1

Вход:
ops = [["push",-2],["push",0],["push",-3],["getMin"],["pop"],["top"],["getMin"]]
Выход:[-3,0,-2]

Пример 2

Вход:
ops = [["push",1],["push",2],["top"],["getMin"]]
Выход:[2,1]

Пример 3

Вход:
ops = [["push",5],["push",3],["push",7],["getMin"],["pop"],["pop"],["getMin"]]
Выход:[3,5]
Консоль
Нажмите Run или Ctrl+Enter для запуска