Greedy Algorithms8 sections · 316 units
Open in Course

Implementation

The code

function activitySelection(activities)
 sort activities by end time ascending
 count := 1
 lastEnd := activities[0].end
 for i from 1 to length of activities - 1
 if activities[i].start >= lastEnd then
 count := count + 1
 lastEnd := activities[i].end
 return count

Time: O(nlogn)O(n \log n) for sorting, O(n)O(n) for scanning. Total: O(nlogn)O(n \log n). Space: O(1)O(1) extra (assuming in-place sort).