Activity Selection

T: O(n log n)
Feedback

Activity Selection

Activity 0 [1, 3]: take (no overlap). Selected: 0.
Intervals (sorted by end time)
0
[1,3]
1
[2,5]
2
[0,7]
3
[6,8]
4
[3,9]
Selected: 0 activities
SelectedCurrent
SpeedNormal (500ms)
Parameters

{ intervals: { start: number, end: number }[] }

Variables
i0
lastEnd-1
selected0
current [s,e][1,3]
1sort by end time → 5 activities
2selected = [], lastEnd = -1
3for i = 0 to n-1: → i = 0 [1,3]
4 if start[i] >= lastEnd: selected.add(i), lastEnd = end[i] ✓ take
5return selected
Output
Activity 0 [1, 3]: take (no overlap). Selected: 0.