leetcode739.每日温度

leetcode739.每日温度

题目

请根据每日 气温 列表 temperatures ,请计算在每一天需要等几天才会有更高的温度。如果气温在这之后都不会升高,请在该位置用 0 来代替。

用例

输入: temperatures = [73,74,75,71,69,72,76,73]
输出: [1,1,4,2,1,1,0,0]
输入: temperatures = [30,40,50,60]
输出: [1,1,1,0]
输入: temperatures = [30,60,90]
输出: [1,1,0]

求解

/**
 * @param {number[]} temperatures
 * @return {number[]}
 */
var dailyTemperatures = function(temperatures) {
    let stack = []
    let res = new Array(temperatures.length).fill(0)
    for(let i=0;i<temperatures.length;i++){
        if(stack.length==0){
            stack.push(i)
        }else{
            while(stack.length!=0&&temperatures[stack[stack.length-1]]<temperatures[i]){
                res[stack[stack.length-1]]=i-stack[stack.length-1]
                stack.pop()
            }
            stack.push(i)
        }
    }
    return res
};
posted @ 2021-12-10 13:39  BONiii  阅读(24)  评论(0)    收藏  举报