LeetCode solutions

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

Read the problem on LeetCode View on GitHub

C++

Accepted on LeetCode — runtime 212ms, memory 170.5MB, accepted 2025-12-27.

cpp
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];
    }
};

Source