Sagen wir, ich habe eine Liste von Tupeln mit Start- und Endzeiten zu finden:Funtional Weise leeren Abständen in einer Liste von Tupeln mit Start- und Endzeiten
List((1,10), (2,11), (3,11), (13,14))
Die einzige Entspannung dh Startzeiten sind aufsteigend
ich erwarte, dass die folgende Ausgabe:
List((0,1), (11,13))
Das Verfahren Umsetzung ist recht einfach, aber ich würde keine Ahnung, diese (idiomatisch) funktionsfähig zu machen.
Eine Scala-for-Yield-Schleife scheint eine schlechte Anpassung zu sein, da das Ergebnis die gleiche Größe wie die Eingabe hätte. Während eine Verkleinerung/Falte mich beschränken würde, nur ein Tupel als die Antwort zu haben.
Arbeiten Sie nur mit Ganzzahlen? Oder zumindest mit einer diskreten Reihe von Werten? – meucaa
In dem tatsächlichen Problem ja, sie sind Unix-Zeitstempel. – hbogert
suchen Sie eine Bibliothek oder eine Beschreibung eines Algorithmus? Dies könnte relevant sein: https://github.com/rklaehn/intervalset –