leetcode

Leetcode Solutions (0x6A73)
git clone https://git.pngu.org/leetcode
Log | Files | Refs | Submodules | README

commit a46ef4d0be2f3eb1384b222b5a2bf5091d9c3be3
parent e8a5a000382b7236e558e3e871d0dec79a955f2d
Author: Jack Sangdahl <jack@pngu.org>
Date:   Sun,  6 Jul 2025 21:14:11 -0600

1353. maximum number of events that can be attended

Diffstat:
Amax_num_events_attended.c | 9+++++++++
Amax_num_events_attended.py | 37+++++++++++++++++++++++++++++++++++++
2 files changed, 46 insertions(+), 0 deletions(-)

diff --git a/max_num_events_attended.c b/max_num_events_attended.c @@ -0,0 +1,9 @@ +#include "leetcode.h" + +/* + * you are given an array of 'events' where 'events[i] = [startday_i, + * endday_i]'. every event 'i' starts at 'startday_i' and ends at 'endday_i'. + * you can attend an event 'i' at any day 'd' where 'starttime_i <= d <= + * endtime_i'. you can only attend one event at any time 'd'. return the maximum + * number of events you can attend. + */ diff --git a/max_num_events_attended.py b/max_num_events_attended.py @@ -0,0 +1,37 @@ +# 1353. Maximum Number of Events That Can Be Attended +import heapq + +""" +you are given an array of 'events' where 'events[i] = [startday_i, +endday_i]'. every event 'i' starts at 'startday_i' and ends at 'endday_i'. +you can attend an event 'i' at any day 'd' where 'starttime_i <= d <= +endtime_i'. you can only attend one event at any time 'd'. return the maximum +number of events you can attend. +""" + + +class Solution(object): + def maxEvents(self, events): + """ + :type events: List[List[int]] + :rtype: int + """ + events.sort(reverse=True) + heap, ans, d = [], 0, 0 + while events or heap: + if not heap: + d = events[-1][0] + while events and events[-1][0] <= d: + heapq.heappush(heap, events.pop()[1]) + heapq.heappop(heap) + ans += 1 + d += 1 + while heap and heap[0] < d: + heapq.heappop(heap) + return ans + + +if __name__ == "__main__": + obj = Solution() + print(obj.maxEvents(events=[[1, 2], [2, 3], [3, 4]])) + print(obj.maxEvents(events=[[1, 2], [2, 3], [3, 4], [1, 2]]))