File tree Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * @param {number[][] } events
3+ * @param {number } k
4+ * @return {number }
5+ */
6+ const maxValue = function ( events , k ) {
7+ // d[i][j] 表示以 events[i]结尾的取最多j个最大值
8+ // d[i][j-1], Math.max( d[m][j-1] + v[i]) for m ending < start[i]
9+ events . sort ( ( a , b ) => a [ 1 ] - b [ 1 ] )
10+ const n = events . length
11+ let d = [ ]
12+ for ( let j = 0 ; j <= k ; j ++ ) {
13+ const newD = [ ]
14+ for ( let i = 0 ; i < n ; i ++ ) {
15+ if ( j === 0 ) {
16+ newD [ i ] = 0
17+ } else if ( j === 1 ) {
18+ newD [ i ] = events [ i ] [ 2 ]
19+ } else if ( i === 0 ) {
20+ newD [ i ] = events [ i ] [ 2 ]
21+ } else {
22+ newD [ i ] = d [ i ] // 以i结尾最多取j-1次的最大值
23+ const v = events [ i ] [ 2 ]
24+ const start = events [ i ] [ 0 ]
25+ for ( let m = 0 ; m < i ; m ++ ) {
26+ if ( events [ m ] [ 1 ] < start ) {
27+ if ( d [ m ] + v > newD [ i ] ) {
28+ newD [ i ] = d [ m ] + v
29+ }
30+ } else {
31+ break
32+ }
33+ }
34+ }
35+ }
36+ d = [ ...newD ]
37+ }
38+ return Math . max ( ...d )
39+ }
40+
41+
42+ // another
43+
44+
145/**
246 * @param {number[][] } events
347 * @param {number } k
You can’t perform that action at this time.
0 commit comments