Greedy
Local Choice Visualizer
Watch greedy strategies sort, scan, select, merge, and reset state while each step updates the current result and complexity.
O(n log n) time / O(1) space
result: -selected: 0
A1default
[1, 3]
start 1 / end 3
A2default
[2, 5]
start 2 / end 5
A3default
[4, 7]
start 4 / end 7
A4default
[6, 9]
start 6 / end 9
A5default
[8, 10]
start 8 / end 10
Result
-
Time
O(n log n)
Space
O(1)
Step Note
Sort activities by earliest finish time.
function activitySelection(activities: Activity[]) {
activities.sort((a, b) => a.end - b.end)
const selected = []
let lastEnd = -Infinity
for (const activity of activities) {
if (activity.start >= lastEnd) {
selected.push(activity)
lastEnd = activity.end
}
}
return selected
}