Код Senior Стек и монотонный стек обновлено

Следующий больший элемент

Условие

Для каждого элемента - через сколько шагов встретится строго больший. Если такого нет - 0.

Примеры

nextGreater([73, 74, 75, 71, 69, 72, 76, 73]) // [1, 1, 4, 2, 1, 1, 0, 0]
nextGreater([30, 40, 50, 60]) // [1, 1, 1, 0]
nextGreater([30]) // [0]

Как подойти

Признак «следующий больший/меньший» → монотонный стек индексов. Каждый индекс кладётся и снимается один раз - O(n), хотя внутри и есть while.

Подсказки: 2
  1. Храни в стеке индексы, а не значения.
  2. Пока текущий больше вершины - вершина нашла свой ответ.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.

Термины по теме