907. Sum of Subarray Minimums
https://leetcode.com/problems/sum-of-subarray-minimums/
Input: arr = [3,1,2,4]
Output: 17
Explanation:
Subarrays are [3], [1], [2], [4], [3,1], [1,2], [2,4], [3,1,2], [1,2,4], [3,1,2,4].
Minimums are 3, 1, 2, 4, 1, 1, 2, 1, 1, 1.
Sum is 17.Input: arr = [11,81,94,43,3]
Output: 444class Solution:
def sumSubarrayMins(self, arr: List[int]) -> int:
arr = [0] + arr + [0]
s, res = [], 0
for i, num in enumerate(arr):
while s and num < arr[s[-1]]:
j = s.pop()
res = (res + (i - j) * (j - s[-1]) * arr[j]) % (10 ** 9 + 7)
s.append(i)
return res
Last updated