Time: O(nlogn), Space: O(1)
Java:
class Solution {
public boolean canAttendMeetings(int[][] intervals) {
Arrays.sort(intervals, (o1, o2) -> (o1[0] - o2[0]));
for (int i = 0; i < intervals.length - 1; i++) {
if (intervals[i][1] > intervals[i + 1][0]) {
return false;
}
}
return true;
}
}
Python:
# Definition for an interval.
# class Interval:
# def __init__(self, s=0, e=0):
# self.start = s
# self.end = e
class Solution:
def canAttendMeetings(self, intervals: 'List[Interval]') -> 'bool':
if not intervals or len(intervals) == 0:
return True
intervals = sorted(intervals, key = lambda x : x.start)
end = intervals[0].end
for i in range(1, len(intervals)):
if intervals[i].start < end:
return False
else:
end = intervals[i].end
return True