题目
解题
维护一个单调栈,栈里存储的是数组下标,res 里面所有元素先初始化为 0。详细思路见:每日温度
// javascript
var dailyTemperatures = function(temperatures) {
let len = temperatures.length;
let res = new Array(len).fill(0);
let stack = new Array();
for (let i = 0; i < temperatures.length; i++) {
// temperatures[peek(stack)],存储的是下标
while (!isEmpty(stack) && temperatures[i] > temperatures[peek(stack)]) {
let index = stack.pop();
res[index] = i - index;
}
stack.push(i);
}
return res;
};
var isEmpty = function(stack) {
return stack.length === 0;
};
var peek = function(stack) {
if (isEmpty(stack)) return -1;
else return stack[stack.length - 1];
};