Конин Георгий/sum-of-subarray-minimums
Материал из DISCOPAL
Задача
Код
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/ Решено: Конин Георгий 15:01, 31 октября 2024 (UTC)
[ Хронологический вид ]Комментарии
Войдите, чтобы комментировать.