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 
    """