Snowflake OA 面试真题解析:Maximum Number of Events You Can Attend

23次阅读
没有评论

You are given an array of events where events[i] = [startDayi, endDayi]. Every event i starts at startDayi and ends at endDayi.

You can attend an event i on any day d where startDayi <= d <= endDayi. You can only attend one event at any time d.

Return the maximum number of events you can attend.

这道题本质上是一个“按天选择可参加事件”的贪心问题:为了让能参加的事件数最大,通常要按时间推进,用最小堆维护当前已经开始、但还没过期的事件结束时间,每一天优先参加结束最早的事件,这样能尽量为后续天数保留更多选择。核心数据结构通常是排序加优先队列,时间复杂度可做到接近 <code>O(n log n)</code>,适合处理中等到较大的事件区间数据。

正文完
 0