2022-03-27 18:27:43 +08:00
< p > You are given an integer array < code > nums< / code > . The < strong > range< / strong > of a subarray of < code > nums< / code > is the difference between the largest and smallest element in the subarray.< / p >
< p > Return < em > the < strong > sum of all< / strong > subarray ranges of < / em > < code > nums< / code > < em > .< / em > < / p >
< p > A subarray is a contiguous < strong > non-empty< / strong > sequence of elements within an array.< / p >
< p > < / p >
2023-12-09 18:42:21 +08:00
< p > < strong class = "example" > Example 1:< / strong > < / p >
2022-03-27 18:27:43 +08:00
< pre >
< strong > Input:< / strong > nums = [1,2,3]
< strong > Output:< / strong > 4
< strong > Explanation:< / strong > The 6 subarrays of nums are the following:
[1], range = largest - smallest = 1 - 1 = 0
[2], range = 2 - 2 = 0
[3], range = 3 - 3 = 0
[1,2], range = 2 - 1 = 1
[2,3], range = 3 - 2 = 1
[1,2,3], range = 3 - 1 = 2
So the sum of all ranges is 0 + 0 + 0 + 1 + 1 + 2 = 4.< / pre >
2023-12-09 18:42:21 +08:00
< p > < strong class = "example" > Example 2:< / strong > < / p >
2022-03-27 18:27:43 +08:00
< pre >
< strong > Input:< / strong > nums = [1,3,3]
< strong > Output:< / strong > 4
< strong > Explanation:< / strong > The 6 subarrays of nums are the following:
[1], range = largest - smallest = 1 - 1 = 0
[3], range = 3 - 3 = 0
[3], range = 3 - 3 = 0
[1,3], range = 3 - 1 = 2
[3,3], range = 3 - 3 = 0
[1,3,3], range = 3 - 1 = 2
So the sum of all ranges is 0 + 0 + 0 + 2 + 0 + 2 = 4.
< / pre >
2023-12-09 18:42:21 +08:00
< p > < strong class = "example" > Example 3:< / strong > < / p >
2022-03-27 18:27:43 +08:00
< pre >
< strong > Input:< / strong > nums = [4,-2,-3,4,1]
< strong > Output:< / strong > 59
< strong > Explanation:< / strong > The sum of all subarray ranges of nums is 59.
< / pre >
< p > < / p >
< p > < strong > Constraints:< / strong > < / p >
< ul >
< li > < code > 1 < = nums.length < = 1000< / code > < / li >
< li > < code > -10< sup > 9< / sup > < = nums[i] < = 10< sup > 9< / sup > < / code > < / li >
< / ul >
< p > < / p >
< p > < strong > Follow-up:< / strong > Could you find a solution with < code > O(n)< / code > time complexity?< / p >