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