1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
// @Title: 子数组范围和 (Sum of Subarray Ranges)
// @Author: 15816537946@163.com
// @Date: 2022-03-04 19:39:40
// @Runtime: 24 ms
// @Memory: 4.1 MB
func subArrayRanges(nums []int) int64 {
    var ans int64
    for i, num := range nums {
        minVal, maxVal := num, num
        for _, v := range nums[i+1:] {
            if v < minVal {
                minVal = v
            } else if v > maxVal {
                maxVal = v
            }
            ans += int64(maxVal-minVal)
        }
    }
    return ans
}