1353. 最多可以参加的会议数目 python

给你一个数组 events,其中 events[i] = [startDayi, endDayi] ,表示会议 i 开始于 startDayi ,结束于 endDayi 。

你可以在满足 startDayi <= d <= endDayi 中的任意一天 d 参加会议 i 。注意,一天只能参加一个会议。

请你返回你可以参加的 最大 会议数目。
1353. 最多可以参加的会议数目 python_第1张图片
1353. 最多可以参加的会议数目 python_第2张图片
思路:按照结束时间进行排序,对于第 ii 天,如果有若干的会议都可以在这一天开,那么我们肯定是让 endDayendDay 小的会议先在这一天开才会使答案最优,因为 endDayendDay 大的会议可选择的空间是比 endDayendDay 小的多的,所以在满足条件的会议需要让 endDayendDay 小的先开。

超时了,改进的话用优先队列,我能力有限,不会搞。

class Solution:
    def maxEvents(self, events: List[List[int]]) -> int:
        res = 0
        events=sorted(events,key=lambda x:x[1])#按最晚时间元素进行排列
        visited=set()
        for s,e in events:
            for day in range(s, e+1):
                if day not in visited:
                    visited.add(day)
                    break
        return len(visited)

你可能感兴趣的:(leetcode)