Given an array of intervals `intervals` where `intervals[i] = [starti, endi]`, return the minimum number of intervals you need to remove to make the rest of the intervals non-overlapping.
Greedy (Sort by End Time)
Sort intervals by end time. Greedily keep each interval that doesn't overlap the previous kept one. Every overlap → one removal.