g2001_2100.s2054_two_best_non_overlapping_events.readme.md Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java21 Show documentation
Show all versions of leetcode-in-java21 Show documentation
Java-based LeetCode algorithm problem solutions, regularly updated
2054\. Two Best Non-Overlapping Events
Medium
You are given a **0-indexed** 2D integer array of `events` where events[i] = [startTimei, endTimei, valuei]
. The ith
event starts at startTimei
and ends at endTimei
, and if you attend this event, you will receive a value of valuei
. You can choose **at most** **two** **non-overlapping** events to attend such that the sum of their values is **maximized**.
Return _this **maximum** sum._
Note that the start time and end time is **inclusive**: that is, you cannot attend two events where one of them starts and the other ends at the same time. More specifically, if you attend an event with end time `t`, the next event must start at or after `t + 1`.
**Example 1:**
![](https://assets.leetcode.com/uploads/2021/09/21/picture5.png)
**Input:** events = [[1,3,2],[4,5,2],[2,4,3]]
**Output:** 4
**Explanation:** Choose the green events, 0 and 1 for a sum of 2 + 2 = 4.
**Example 2:**
![Example 1 Diagram](https://assets.leetcode.com/uploads/2021/09/21/picture1.png)
**Input:** events = [[1,3,2],[4,5,2],[1,5,5]]
**Output:** 5
**Explanation:** Choose event 2 for a sum of 5.
**Example 3:**
![](https://assets.leetcode.com/uploads/2021/09/21/picture3.png)
**Input:** events = [[1,5,3],[1,5,1],[6,6,5]]
**Output:** 8
**Explanation:** Choose events 0 and 2 for a sum of 3 + 5 = 8.
**Constraints:**
* 2 <= events.length <= 105
* `events[i].length == 3`
* 1 <= startTimei <= endTimei <= 109
* 1 <= valuei <= 106