503. Next Greater Element II (Medium) - TengnanYao/daily_leetcode GitHub Wiki

class Solution(object):
    def nextGreaterElements(self, nums):
        """
        :type nums: List[int]
        :rtype: List[int]
        """
        stack = []
        result = [-1] * len(nums)
        for i, num in enumerate(nums):
            while stack and num > nums[stack[-1]]:
                j = stack.pop()
                result[j] = num
            stack.append(i)
        for i, num in enumerate(nums):
            while stack and num > nums[stack[-1]]:
                j = stack.pop()
                result[j] = num
        return result