diff --git a/problems/0739.每日温度.md b/problems/0739.每日温度.md index b00701ed..53ce1133 100644 --- a/problems/0739.每日温度.md +++ b/problems/0739.每日温度.md @@ -276,6 +276,36 @@ func dailyTemperatures(num []int) []int { } ``` +JavaScript: +```javascript +/** + * @param {number[]} temperatures + * @return {number[]} + */ +var dailyTemperatures = function(temperatures) { + let n = temperatures.length; + let res = new Array(n).fill(0); + let stack = []; // 递减栈:用于存储元素右面第一个比他大的元素下标 + stack.push(0); + for (let i = 1; i < n; i++) { + // 栈顶元素 + let top = stack[stack.length - 1]; + if (temperatures[i] < temperatures[top]) { + stack.push(i); + } else if (temperatures[i] === temperatures[top]) { + stack.push(i); + } else { + while (stack.length && temperatures[i] > temperatures[stack[stack.length - 1]]) { + let top = stack.pop(); + res[top] = i - top; + } + stack.push(i); + } + } + return res; +}; +``` + -----------------------