File tree Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Original file line number Diff line number Diff line change
1
+ let pre = Array ( 10001 ) . fill ( 0 ) ;
2
+ let cur = Array ( 10001 ) . fill ( 0 ) ;
3
+ let ps = Array ( 10001 ) . fill ( 0 ) ;
4
+
5
+ /**
6
+ * @param {number[] } nums
7
+ * @param {number } k
8
+ * @return {number }
9
+ */
10
+ var maximumStrength = function ( nums , k ) {
11
+ let n = nums . length ;
12
+
13
+ ps [ 0 ] = 0 ;
14
+ for ( let i = 0 ; i < n ; ++ i ) {
15
+ ps [ i + 1 ] = ps [ i ] + nums [ i ] ;
16
+ }
17
+
18
+ ++ n ;
19
+ cur . fill ( 0 , 0 , n ) ;
20
+
21
+ for ( let i = 1 ; i <= k ; ++ i ) {
22
+ let tem = pre ;
23
+ pre = cur ;
24
+ cur = tem ;
25
+
26
+ let t = 1 + k - i ;
27
+ if ( ! ( i & 1 ) ) t = - t ;
28
+
29
+ let m = pre [ i - 1 ] - ps [ i - 1 ] * t ;
30
+ cur [ i ] = ps [ i ] * t + m ;
31
+ m = Math . max ( m , pre [ i ] - ps [ i ] * t ) ;
32
+
33
+ for ( let j = i + 1 ; j < n ; ++ j ) {
34
+ cur [ j ] = Math . max ( cur [ j - 1 ] , ps [ j ] * t + m ) ;
35
+ m = Math . max ( m , pre [ j ] - ps [ j ] * t ) ;
36
+ }
37
+ }
38
+
39
+ return cur [ n - 1 ] ;
40
+ } ;
You can’t perform that action at this time.
0 commit comments