Maximum Number of Events That Can Be Attended II LeetCode solution in JavaScript

1
/**
2
* @param {number[][]} events
3
* @param {number} k
4
* @return {number}
5
*/
6

7
var f = function (ind, k, events, dp) {
8
if (ind == events.length || k == 0) return 0;
9

10
if (dp[ind][k] != -1) return dp[ind][k];
11
let take = events[ind][2];
12
for (let i = ind + 1; i < events.length; ++i) {
13
if (events[ind][1] < events[i][0]) {
14
take += f(i, k - 1, events, dp);
15
break;
16
}
17
}
18
let notTake = f(ind + 1, k, events, dp);
19
return (dp[ind][k] = Math.max(take, notTake));
20
};
21
var maxValue = function (events, k) {
22
const dp = [];
23
events.sort((a, b) => (a[0] === b[0] ? a[1] - b[1] : a[0] - b[0]));
24
for (let i = 0; i < events.length; ++i) {
25
dp[i] = new Array(k + 1).fill(-1);
26
}
27
return f(0, k, events, dp);
28
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0