Код 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
- Храни в стеке индексы, а не значения.
- Пока текущий больше вершины - вершина нашла свой ответ.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.