1734. Sum of Subarray Minimums

Code(Language:C++)
class Solution {
public:
    /**
     * @param A: an array
     * @return: the sum of subarray minimums
     */
    int sumSubarrayMins(vector<int> &A) {
        // Write your code here.
        long res = 0;
        long mod = 1000000007;
        
        for (int i = 0; i < A.size(); i++) {
            int l = i - 1;
            while(l >= 0 && A[l] > A[i]){
                l--; 
            }
            int r = i + 1;
            while(r < A.size() && A[r] >= A[i]){
                r++;
            }
 
            res += (i - l) * (r - i) * A[i];
        }
        return res % mod;
    }
};

Comments

Popular posts from this blog

算法的比较