From ac8ca62309bb2dddb9990b8fdb90f23bf3959129 Mon Sep 17 00:00:00 2001 From: Jerry-306 <82520819+Jerry-306@users.noreply.github.com> Date: Fri, 17 Sep 2021 21:43:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=200739=20=E6=AF=8F=E6=97=A5?= =?UTF-8?q?=E6=B8=A9=E5=BA=A6=20=20JavaScript=20=E7=89=88=E6=9C=AC=20?= =?UTF-8?q?=E5=8D=95=E8=B0=83=E6=A0=88=E8=A7=A3=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/0739.每日温度.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) 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; +}; +``` + -----------------------