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
+
1
45
/**
2
46
* @param {number[][] } events
3
47
* @param {number } k
You can’t perform that action at this time.
0 commit comments