From dba8820427c64b66add3b7ad053226e7d9943e53 Mon Sep 17 00:00:00 2001 From: Zhipeng Xu Date: Sat, 8 Jul 2023 10:43:24 +0800 Subject: [PATCH] =?UTF-8?q?Update=200739.=E6=AF=8F=E6=97=A5=E6=B8=A9?= =?UTF-8?q?=E5=BA=A6.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/0739.每日温度.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/problems/0739.每日温度.md b/problems/0739.每日温度.md index 749dc972..d2da3737 100644 --- a/problems/0739.每日温度.md +++ b/problems/0739.每日温度.md @@ -455,7 +455,27 @@ function dailyTemperatures(temperatures: number[]): number[] { }; ``` +Rust: +```rust +impl Solution { + /// 单调栈的本质是以空间换时间,记录之前已访问过的非递增子序列下标 + pub fn daily_temperatures(temperatures: Vec) -> Vec { + let mut res = vec![0; temperatures.len()]; + let mut stack = vec![]; + for (idx, &value) in temperatures.iter().enumerate() { + while !stack.is_empty() && temperatures[*stack.last().unwrap()] < value { + // 弹出,并计算res中对应位置的值 + let i = stack.pop().unwrap(); + res[i] = (idx - i) as i32; + } + // 入栈 + stack.push(idx) + } + res + } +} +```