2054. Two Best Non Overlapping Events (Medium) - TengnanYao/daily_leetcode GitHub Wiki
class Solution:
def maxTwoEvents(self, events: List[List[int]]) -> int:
events.sort(key = lambda x : x[1])
ends, endsMax = [0], [0]
result = 0
for start, end, val in events:
if val > endsMax[-1]:
ends.append(end)
endsMax.append(max(val, endsMax[-1]))
i = bisect_left(ends, start)
result = max(result, val + endsMax[i - 1])
return result