在数组中,数字减去它右边的数字得到一个数对之差。
求所有数对之差的最大值。例如在数组{ 2, 4, 1, 16, 7, 5, 11, 9 }中数对之差的最大值是11,是16减去5的结果。
记原始数组为:arr[1..n]
使用一个数组记录向量两个数组之间的差值
delta[i]=arr[i]-arr[j]
delta的值依次为:
a[1]-a[2] a[2]-a[3] a[3]-a[4] ... a[n-1]-a[n]
则任意两个差值表示为:
a[i]-a[j]=(a[i]-a[i+1])+(a[i+1]-a[i+2])+(a[i+2]-a[i+3]) ...+(a[j-1]-a[j])
=delta[i]+delta[i+1]+...delta[j-1]
即连续子数组和
接下来即求delta数组最大连续子数组和