Solving Sum of Subarray Minimums in go. Please try yourself first to solve the problem and submit your implementation to LeetCode before looking into solution.

Problem Description

Given an array of integers A, find the sum of min(B), where B ranges over every (contiguous) subarray of A.

Since the answer may be large, return the answer modulo 10^9 + 7.

Example 1:

Input: [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.

Note:

  1. 1 <= A.length <= 30000
  2. 1 <= A[i] <= 30000
    [3]  
    [4, 3]  
    [2, 4, 3]  
    [1, 2, 4, 3]  
    [3, 1, 2, 4, 3] 

See the full details of the problem Sum of Subarray Minimums at LeetCode

Originally posted at: @github.com/halfrost/LeetCode-Go