1. 找规律题,像这种题一上来给人的感觉就是n次的变化是有规律的。不妨我们就一步一步的看规律在哪里。
2. 由上图可以得出公式如下:其中和F(0)是需要我们去做初始化的。
3. 时间复杂度O(n), 空间复杂度O(1)。
java">class Solution {public int maxRotateFunction(int[] nums) {int rmax, preNum = 0, sum = 0, offset = nums.length, len = nums.length;for (int i = 0; i < len; i++) {preNum += nums[i] * i;sum += nums[i];}rmax = preNum;for (int i = 1; i < len; i++) {rmax = Math.max(rmax, preNum = preNum - nums[offset - 1] * len + sum);offset--;}return rmax;}
}