Условие задачи

Необходимо создать стек, который поддерживает операции добавления, удаления, получения верхнего элемента и получения минимального элемента за константное время.

Необходимо реализовать класс MinStack со следующими методами:

Все методы должны работать за O(1) время.

Пояснения и примеры

Решение

Для реализации стека, который поддерживает операции добавления, удаления, получения верхнего элемента и получения минимального элемента за константное время, можно использовать два стека: основной и вспомогательный.

Пример: