美文网首页
LeetCode&Python 920.会议室 & 919.会议

LeetCode&Python 920.会议室 & 919.会议

作者: 长在香蕉树上的猫 | 来源:发表于2019-03-18 21:48 被阅读0次

    920.会议室

    描述

    给定一系列的会议时间间隔,包括起始和结束时间[[s1,e1],[s2,e2],…(si < ei),确定一个人是否可以参加所有会议。

    Example

    样例1

    输入: intervals = [(0,30),(5,10),(15,20)]

    输出: false

    解释:

    (0,30), (5,10) 和 (0,30),(15,20) 这两对会议会冲突

    样例2

    输入: intervals = [(5,8),(9,15)]

    输出: true

    解释:

    这两个时间段不会冲突


    class Solution:

        def canAttendMeetings(self, intervals):

            intervals.sort(key = lambda x: x.start)

            for i in range(1,len(intervals)):

                if intervals[i].start < intervals[i-1].end:

                    return False

            return True

    思路就是排序之后再比较是否有重叠区间。


    919.会议室 2

    给定一系列的会议时间间隔intervals,包括起始和结束时间[[s1,e1],[s2,e2],...] (si < ei),找到所需的最小的会议室数量。

    Example

    样例1

    输入: intervals = [(0,30),(5,10),(15,20)]

    输出: 2

    解释:

    需要两个会议室

    会议室1:(0,30)

    会议室2:(5,10),(15,20)

    样例2

    输入: intervals = [(2,7)]

    输出: 1

    解释:

    只需要1个会议室就够了


    这道题运用了扫描线的思路,将起始时间和结束时间在x轴上标记,然后计数,遇到起始时间就+1(打开一个会议室),遇到结束时间就-1(关闭一个会议室),取这个过程中的最大值,则是需要的最小会议室数。

    """

    Definition of Interval.

    class Interval(object):

        def __init__(self, start, end):

            self.start = start

            self.end = end

    """

    class Solution:

        def minMeetingRooms(self, intervals):

            # Write your code here

            start = []

            end = []

            for i in intervals:

                start.append(i.start)

                end.append(i.end)

            start.sort()

            end.sort()

            a , b = 0 , 0

            min_room = 0

            count_room = 0

            while a < len(start):

                if start[a] < end[b]:

                    count_room += 1

                    a += 1

                    min_room = max(min_room , count_room)

                else:

                    count_room -= 1

                    b += 1

            return min_room

    相关文章

      网友评论

          本文标题:LeetCode&Python 920.会议室 & 919.会议

          本文链接:https://www.haomeiwen.com/subject/lnewuqtx.html