396. 旋转函数
1 // F[i + 1] - F[i] = sum - n * A[n - 1 - i] 2 class Solution 3 { 4 public: 5 int maxRotateFunction(vector<int>& A) 6 { 7 if(A.empty()) return 0; 8 int F = 0; 9 long long sum = 0; 10 int n = A.size(); 11 for(int i = 0;i < n;i ++) 12 { 13 sum += A[i]; 14 F += i*A[i]; 15 } 16 int res = F; 17 for(int i = 0;i < n - 1;i ++) 18 { 19 F += (sum - A.size() * A[n - 1 - i]); 20 res = max(res,F); 21 } 22 return res; 23 } 24 };
Mamba never out

浙公网安备 33010602011771号