Конин Георгий/sum-of-subarray-minimums

Материал из DISCOPAL
Версия от 14:39, 31 октября 2024; Конин Георгий (обсуждение | вклад) (Новая страница: «==Задача== * Leetcode/sum-of-subarray-minimums ==Код== <source lang="python"> class Solution: def sumSubarrayMins(self, arr: List[int]) -> int:…»)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Задача

Код

class Solution:
    def sumSubarrayMins(self, arr: List[int]) -> int:
        stack=[]
        out=0
 
        for i in arr:
            if not stack:
                stack.append([i,1,0])
            else:
                cnt=0
                while stack and stack[-1][0]>i:
                    val,oc,r=stack.pop()
                    out+=(val*(cnt+oc))+(cnt*r*val)
                    cnt+=oc
                stack.append([i,1+cnt,cnt])
        cnt=0
 
        while stack:
            val,oc,r=stack.pop()
            out+=(val*(cnt+oc))+(cnt*r*val)
            cnt+=oc
        return out%((10**9)+7)

Submission

https://leetcode.com/problems/sum-of-subarray-minimums/submissions/1439106215/

[ Хронологический вид ]Комментарии

(нет элементов)

Войдите, чтобы комментировать.