Finding minimum is an optimization question so likely to be DP or greedy.
We can assume there is an optimal solution such as by removing a set of intervals S.
By exchange argument, we can swap out an interval Ri from the removing set S with an interval Rjthat
overlaps with Ri(correctness)
has a later end time (optimality)
We can keep an interval Rk in the list if start_timek does not overlap from before (correctness).
For example, we have an optimal removing set S1=[R1,R2,R7]. We can swap R7 with R3 to guarantee optimality because R3 overlaps R7 and ends at a later time. Again, we can swap R2 with R4 with the same reason. Now we have with a new removing set S2=[R1,R3,R4] that is also optimal. Because we start this exchange process with a greedy choice, this greedy algorithm is proved to be optimal by induction.
Code
Complexity
Time O(nlogn) + O(n) Space O(n)
Corollary
This is actually a classic problem in interval scheduling. An equivalent problem statement is to find the maximum number of intervals that are non-overlapping.