Назад к задачам
Junior — Senior
6

Стек, умеющий возвращать текущий максимум за O(1)

Компании, где спрашивали:

ЯндексЯндекс
Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Необходимо реализовать структуру данных «стек», которая поддерживает следующие операции:

  • push(x) — добавить элемент в стек;
  • pop() — удалить верхний элемент стека;
  • top() — получить значение верхнего элемента без его удаления;
  • getMax() — вернуть наибольшее значение среди всех элементов, находящихся в стеке, за константное время.
public class MaxStack {
    public void push(int x) {
        // ...
    }

    public void pop() {
        // ...
    }

    public int top() {
        // ...
    }

    public int getMax() {
        // ...
    }
}