Leetcode 1570 Solution

This article provides solution to leetcode question 1570 (final-prices-with-a-special-discount-in-a-shop)

https://leetcode.com/problems/final-prices-with-a-special-discount-in-a-shop

Solution

class Solution:
    def finalPrices(self, prices: List[int]) -> List[int]:
        s = []

        ans = []
        for i in range(len(prices) - 1, -1, -1):
            while s and s[-1] > prices[i]:
                s.pop()

            if s:
                ans.append(prices[i] - s[-1])
            else:
                ans.append(prices[i])

            if not s or s[-1] != prices[i]:
                s.append(prices[i])

        return list(reversed(ans))