brote force time O(N^2) space O(N)
below is optimize solution
class Solution:
"""
attend all ==> no overlap => sort by end and check current start with last end
tc O(N) sc O(1)
"""
def canAttendMeetings(self, intervals: List[List[int]]) -> bool:
intervals.sort(key=lambda k: k[0])
for i in range(1,len(intervals)):
if intervals[i][0] < intervals[i-1][1]:
return False
return True
""" slower version but clear
pre_end = None
intervals.sort(key=lambda x: x[1])
for s,e in intervals:
if pre_end and s < pre_end:
return False
pre_end = e
return True
"""