原题链接
typescript
function nextGreaterElement(nums1: number[], nums2: number[]): number[] {
const map = new Map<number, number>();
const queue = [];
const answer = [];
for(let i = 0; i < nums2.length; i++) {
while(queue.length && nums2[i] > queue[queue.length - 1]) {
map.set(queue.pop(), nums2[i]);
}
queue.push(nums2[i]);
}
for(let i = 0; i < nums1.length; i++) {
answer[i] = map.has(nums1[i]) ? map.get(nums1[i]) : -1;
}
return answer;
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18