Interval & Math
Sort+merge for combining intervals. Sort+greedy for selecting intervals. Sweep line for counting overlaps at any point.
INTERVALS — APPROACH SELECTION
───────────────────────────────
SORT + MERGE:
Sort by start, merge overlapping
□ Merge intervals
□ Insert interval (merge after insert)
□ Interval intersection
Time: O(n log n)
SORT + GREEDY:
Sort by end time, pick earliest-ending first
□ Activity selection / max non-overlapping
□ Meeting rooms: can one person attend all?
□ Minimum meeting rooms (sort starts + ends)
Time: O(n log n)
SWEEP LINE:
Create events: +1 at start, -1 at end
Sort events, scan left to right
□ Maximum overlap count
□ Skyline problem
□ Rectangle area union
Time: O(n log n)
DECISION:
Merge overlapping? → sort by start, merge
Max non-overlapping? → sort by end, greedy
Count overlaps at a point? → sweep line
"How many rooms needed?" → sweep line or sort both arrays
Need new merged list? → sort + merge
Need selection subset? → sort + greedy