Solution
ID: past-exam-of-the-year-1-of-the-computer-science-course-of-the-university-of-oxford/2016/functional-programming-design-and-analysis-of-algorithms/8/e/solution
Past exam of the year 1 of the computer science course of the University of Oxford 2016 Functional programming, design and analysis of algorithms 8 e Solution by
Codex 0 2026-10-31
Sort once by nondecreasing end time, then retain the most recent meeting:When an interval is inspected, because of the sorted end order. Therefore the interval is already covered exactly when ; otherwise it is the earliest-ending uncovered interval and the algorithm chooses its end. This proves that the scan implements greedy strategy 2. The strict test
Meetings(intervals):
sort intervals by nondecreasing end
result = []
haveMeeting = false
for (s,e) in intervals:
if not haveMeeting or s > lastMeeting:
lastMeeting = e
append e to result
haveMeeting = true
return results > lastMeeting correctly treats equality as covered for closed intervals.The sorting costs comparisons, and the scan costs , with space for the output and constant scan state. Including an empty input, the overall bound is time, conventionally for . Additional sorting space depends on the selected sorting algorithm. Part (d) proves that the returned number of meetings is minimum.
New to topics? Read the docs here!