optimal way to find sum(S) of all contiguous sub-array's max difference
You are given an array with n elements: d[0], d[1], ..., d[n-1] . Calculate the sum(S) of all contiguous sub-array's max difference. Formally: S = sum{max{d[l,...,r]} - min{d[l, ..., r}} ,∀ 0 <= l <= r < n Input: 4 1 3 2 4 Output: 12 Explanation: l = 0; r = 0; array: [1] sum = max([1]) - min([1]) = 0 l = 0; r = 1; array: [1,3] sum = max([1,3]) - min([1,3]) = 3 - 1 = 2 l = 0; r = 2; array: [1,3,2] sum = max([1,3,2]) - min([1,3,2]) = 3 - 1 = 2 l = 0;r = 3; array: [1,3,2,4] sum = max([1,3,2,4]) - min([1,3,2,4]) = 4 - 1 = 3 l = 1; r = 1 will result in zero l = 1; r = 2; array: [3,2] sum = max([3,2