该题目采用暴力的方法会导致超时,因此考虑利用递推的dp解决。
利用给出的实例,画出第 i 次旋转后的数组的表格,找规律,写出状态转移方程。
由
(每一个下标都要mod n就不写了)(a就是nums,改了个名QAQ)
由于旋转,使得前n-1个元素向右移了一位,第n个元素变到了最前面(该×0了)
所以,F(i) 是让F(i-1) 减去最后一个加数/3、再加上前面每一个加数
(即:在F(i-1)的基础上,减去第i-1次旋转后的数组 最后一个数的3倍、再加上前n-1个元素之和)
其中,sum[ i ] 指的是第第 i 次旋转后数组的前n-1项的和。
写代码完成即可。