Skip to content

Commit 5d0eaee

Browse files
authored
Update 1751-maximum-number-of-events-that-can-be-attended-ii.js
1 parent fe93afa commit 5d0eaee

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

1751-maximum-number-of-events-that-can-be-attended-ii.js

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,47 @@
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

0 commit comments

Comments
 (0)