252. Meeting Rooms

Easy


Given an array of meeting time intervals where intervals[i] = [starti, endi], determine if a person could attend all meetings.

 

Example 1:

Input: intervals = [[0,30],[5,10],[15,20]]
Output: false

Example 2:

Input: intervals = [[7,10],[2,4]]
Output: true

 

Constraints:

  • 0 <= intervals.length <= 104
  • intervals[i].length == 2
  • 0 <= starti < endi <= 106




 class Solution:
    def canAttendMeetings(self, intervals: List[List[int]]) -> bool:
        # allocation = []
        if len(intervals) <= 1:
            return True

        intervals.sort()
#         allocation.append(intervals[0][1])

#         heapq.heapify(allocation)

#         for intv in intervals[1:]:   

#             if intv[0] < allocation[0]: 
#                 return False
#                 #heapq.heappush(allocation, intv[1])
#             else:
#                 heapq.heappushpop(allocation, intv[1])        

#         return len(allocation) == 1

        for i in range(len(intervals)-1):
            if intervals[i][1]>intervals[i+1][0]:
                return False
        return True

Random Note


From python 3.7 dict guarantees that order will be kept as they inserted, and popitem will use LIFO order but we need FIFO type system. so we need OrderedDict which have popIten(last = T/F) for this req. One thing, next(iter(dict)) will return the first key of the dict