Given a vector of meeting time intervals where intervals[i] = [starti, endi], determine whether one person could attend all the meetings. Return true if no two meetings overlap, and false otherwise.
Two meetings overlap when one of them starts while the other one is still going: it starts before the other one ends, and ends after the other one starts. Meetings that only touch, like [1,2] and [2,3], don't overlap: the person leaves the first one at 2 and walks into the second one at 2. With no meetings at all, nothing can clash, so the answer is true.
Example 1:
Input: intervals = [[0,30],[5,10],[15,20]] Output: false Explanation: [5,10] starts at 5, while [0,30] is still going, so the person can't be at both.
Example 2:
Input: intervals = [[7,10],[2,4]] Output: true Explanation: The meetings aren't sorted, but [2,4] ends before [7,10] starts.
Example 3:
Input: intervals = [[1,2],[2,3],[3,4]] Output: true Explanation: Each meeting starts exactly when the one before it ends. They touch, but they don't overlap.
Constraints:
0 <= intervals.length <= 1050 <= starti < endi <= 106
Note:
Your algorithm should run in O(n log n) time, where n is the number of meetings.
Free plan: 30 tutor messages. Premium is unlimited.
