Bir aralık iki sayıdır: başlangıç ve bitiş (bir toplantı, bir rezervasyon). Aralıklarla ilgili soruların neredeyse hepsi aynı adımla başlar: başlangıca göre sırala. Sıraladıktan sonra bir aralık yalnızca kendisinden hemen öncekiyle çakışabilir ya da çakışmaz; uzaktakilere bakmana gerek kalmaz.
ordered = sorted(intervals)blocks = [ordered[0][:]]for start, end in ordered[1:]:if start <= blocks[-1][1]:blocks[-1][1] = max(blocks[-1][1], end)else:blocks.append([start, end])
max şarttır: içteki kısa aralık, bloğun bitişini geri çekmemelidir."Çakışma var mı?" sorusu bunun daha basit hâlidir: sıralı listede bir aralık, bir öncekinin bitişinden önce başlıyorsa çakışma vardır. Liste çiftlerini sıralamak kendiliğinden önce başlangıca, eşitlikte bitişe bakar.