定义一个函数,函数如下:f(l,r) = \sum\limits_{i = l}^{r - 1 }|a_i−a_{i+1}| \cdot (−1)^{i−l},而 1 \leq l \leq r \leq n,其中 n 是数组 a 的大小,|x| 表示 x 的绝对值。现在给你一个函数,请取恰当的 l,r 使 f 值最大,并输出最大的 f 值。
解决思路
直接考虑动态规划,令 f_{i,0} 表示以 i 为结尾,第 i 位为 + 号;令 f_{i,1} 表示以 i 为结尾,第 i 位为 - 号。然后通过计算两个相邻的数的差值,存入数组 dp,随后用得到的状态转移方程求出最大值。