@@ -54,22 +54,97 @@ F(3) = (0 * 3) + (1 * 2) + (2 * 6) + (3 * 4) = 0 + 2 + 12 + 12 = 26
54
54
55
55
<!-- 这里可写通用的实现逻辑 -->
56
56
57
+ ```
58
+ f(0) = 0 * nums[0] + 1 * nums[1] + ... + (n - 1) * nums[n - 1]
59
+ f(1) = 1 * nums[0] + 2 * nums[1] + ... + 0 * nums[n - 1]
60
+ ...
61
+ f(k) = f(k - 1) + s - n * nums[n - k]
62
+ ```
63
+
64
+
57
65
<!-- tabs:start -->
58
66
59
67
### ** Python3**
60
68
61
69
<!-- 这里可写当前语言的特殊实现逻辑 -->
62
70
63
71
``` python
64
-
72
+ class Solution :
73
+ def maxRotateFunction (self , nums : List[int ]) -> int :
74
+ f = sum (i * v for i, v in enumerate (nums))
75
+ n, s = len (nums), sum (nums)
76
+ ans = f
77
+ for i in range (1 , n):
78
+ f = f + s - n * nums[n - i]
79
+ ans = max (ans, f)
80
+ return ans
65
81
```
66
82
67
83
### ** Java**
68
84
69
85
<!-- 这里可写当前语言的特殊实现逻辑 -->
70
86
71
87
``` java
88
+ class Solution {
89
+ public int maxRotateFunction (int [] nums ) {
90
+ int f = 0 ;
91
+ int s = 0 ;
92
+ int n = nums. length;
93
+ for (int i = 0 ; i < n; ++ i) {
94
+ f += i * nums[i];
95
+ s += nums[i];
96
+ }
97
+ int ans = f;
98
+ for (int i = 1 ; i < n; ++ i) {
99
+ f = f + s - n * nums[n - i];
100
+ ans = Math . max(ans, f);
101
+ }
102
+ return ans;
103
+ }
104
+ }
105
+ ```
106
+
107
+ ### ** C++**
108
+
109
+ ``` cpp
110
+ class Solution {
111
+ public:
112
+ int maxRotateFunction(vector<int >& nums) {
113
+ int f = 0, s = 0, n = nums.size();
114
+ for (int i = 0; i < n; ++i)
115
+ {
116
+ f += i * nums[ i] ;
117
+ s += nums[ i] ;
118
+ }
119
+ int ans = f;
120
+ for (int i = 1; i < n; ++i)
121
+ {
122
+ f = f + s - n * nums[ n - i] ;
123
+ ans = max(ans, f);
124
+ }
125
+ return ans;
126
+ }
127
+ };
128
+ ```
72
129
130
+ ### **Go**
131
+
132
+ ```go
133
+ func maxRotateFunction(nums []int) int {
134
+ f, s, n := 0, 0, len(nums)
135
+ for i, v := range nums {
136
+ f += i * v
137
+ s += v
138
+ }
139
+ ans := f
140
+ for i := 1; i < n; i++ {
141
+ f = f + s - n*nums[n-i]
142
+ if ans < f {
143
+ ans = f
144
+ }
145
+ }
146
+ return ans
147
+ }
73
148
```
74
149
75
150
### ** ...**
0 commit comments