LC 0496 [E] Next Greater Element I - ALawliet/algorithms GitHub Wiki

class Solution:
    def nextGreaterElement(self, nums1: List[int], nums2: List[int]) -> List[int]:
        next_greater = {}
        greatest = []
        
        for num in nums2:
            while greatest and greatest[-1] < num:
                last_greatest = greatest.pop()
                next_greater[last_greatest] = num
            greatest.append(num)
            
        return [next_greater.get(num, -1) for num in nums1]