/** * Time Complexity: O(n) - каждый элемент добавляется и удаляется из стека максимум один раз * Space Complexity: O(n) - стек может содержать до n элементов * * Решение: используем монотонный убывающий стек для хранения индексов. * Когда встречаем температуру выше, чем на вершине стека - нашли ответ * для всех элементов в стеке, которые меньше текущего */var dailyTemperatures = function(temperatures) { const n = temperatures.length; const result = new Array(n).fill(0); const stack = []; // храним индексы for (let i = 0; i < n; i++) { // Пока стек не пуст И текущая температура выше, чем на вершине стека while (stack.length > 0 && temperatures[i] > temperatures[stack[stack.length - 1]]) { const prevIndex = stack.pop(); result[prevIndex] = i - prevIndex; // количество дней ожидания } stack.push(i); // добавляем текущий индекс } return result;};