commit
d337b0c585
|
|
@ -455,7 +455,27 @@ function dailyTemperatures(temperatures: number[]): number[] {
|
|||
};
|
||||
```
|
||||
|
||||
Rust:
|
||||
|
||||
```rust
|
||||
impl Solution {
|
||||
/// 单调栈的本质是以空间换时间,记录之前已访问过的非递增子序列下标
|
||||
pub fn daily_temperatures(temperatures: Vec<i32>) -> Vec<i32> {
|
||||
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
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
<p align="center">
|
||||
|
|
|
|||
Loading…
Reference in New Issue