塔子哥从一个神秘人那里获得了一个长度为N的数组。神秘人告诉塔子哥,塔子哥可以修改数组的一个元素,来改变数组的最小差异度。塔子哥想知道,当他修改第i个元素为多少时,数组的的最小差异度会最小?
给定一个长度为n的数组a。求修改第i个元素为多少时,数组的的最小差异度会最小?
数组的最小差异度定义为:数组所有相邻元素差值的绝对值的和。
可以很容易发现,当修改第1个和第n个元素时,显然修改其为a2和an−1最好。而对于其他元素,由于差异值的定义,可以令ai为ai−1与ai+1之间任意一值,这样,ai与ai−1、ai+1的差异值可以用如下公式计算ai+1−ai+ai−ai−1=ai+1−ai−1(如果ai−1>ai+1,交换它们的值即可)。
如果令ai<ai−1或ai>ai+1,那么他们的差异值为ai+1−ai或ai−ai−1,由于大小关系,一定比上面的值大。