from collections import deque
class Solution:
def nextGreaterElement(self, nums1: List[int], nums2: List[int]) -> List[int]:
d = dict()
queue = deque()
for idx, num in enumerate(nums2):
while len(queue) and num > queue[-1]:
d[queue[-1]] = num
queue.pop()
queue.append(num)
return [d.get(x, -1) for x in nums1]



