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 + } +} +```