mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 08:50:15 +08:00
@ -387,6 +387,32 @@ function nextGreaterElement(nums1: number[], nums2: number[]): number[] {
|
||||
};
|
||||
```
|
||||
|
||||
Rust
|
||||
|
||||
```rust
|
||||
impl Solution {
|
||||
pub fn next_greater_element(nums1: Vec<i32>, nums2: Vec<i32>) -> Vec<i32> {
|
||||
let mut ans = vec![-1; nums1.len()];
|
||||
use std::collections::HashMap;
|
||||
let mut map = HashMap::new();
|
||||
for (idx, &i) in nums1.iter().enumerate() {
|
||||
map.insert(i, idx);
|
||||
}
|
||||
let mut stack = vec![];
|
||||
for (idx, &i) in nums2.iter().enumerate() {
|
||||
while !stack.is_empty() && nums2[*stack.last().unwrap()] < i {
|
||||
let pos = stack.pop().unwrap();
|
||||
if let Some(&jdx) = map.get(&nums2[pos]) {
|
||||
ans[jdx] = i;
|
||||
}
|
||||
}
|
||||
stack.push(idx);
|
||||
}
|
||||
ans
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
<p align="center">
|
||||
|
Reference in New Issue
Block a user