1851. Maximum Number of Events That Can Be Attended II
My accepted C++ solution to LeetCode problem 1851, Maximum Number of Events That Can Be Attended II, running in 212ms.
- Difficulty: Hard
- C++
- Runtime 212ms
- Memory 170.5MB
- Updated
Read the problem on LeetCode View on GitHub
The problem statement is LeetCode’s and stays on their site. What follows is my accepted solution.
C++
Accepted on LeetCode — runtime 212ms, memory 170.5MB, accepted 2025-12-27.
class Solution {
public:
int maxValue(vector<vector<int>>& events, int k) {
sort(events.begin(), events.end());
int n = events.size();
vector<vector<int>> dp(n + 1, vector<int>(k + 1, 0));
for (int i = n - 1; i >= 0; i--) {
int next = upper_bound(events.begin(), events.end(), vector<int>{events[i][1], INT_MAX, INT_MAX}) - events.begin();
for (int j = 1; j <= k; j++) {
dp[i][j] = max(dp[i + 1][j], events[i][2] + dp[next][j - 1]);
}
}
return dp[0][k];
}
};