Es sei eine Liste positiver Ganzzahlen ohne bestimmte Reihenfolge, die Duplikate enthalten können. Schreiben Sie ein Programm oder eine Funktion, die eine Liste positiver Ganzzahlen M ausgibt (deren Reihenfolge unwichtig ist), so dass durch Zusammenführen von L und M die kleinste Liste entsteht, die sich vollständig in identische Bereiche von Ganzzahlen [ 1 .. i ] aufteilen lässt , wobei i die ist größtes Element in L
Beispiel
Lassen L = [5,3,3,2,7]. Das maximale Element von List 7. Das häufigste Vorkommen einer bestimmten Ganzzahl ist 2( 3erscheint zweimal). Daher müssen wir die Liste ausgeben M, die das Vervollständigen ermöglicht, Ldamit wir 2Bereiche von ganzen Zahlen von 1bis konstruieren können 7.
Daher müssen wir ausgeben M = [1,1,2,4,4,5,6,6,7], damit jede Ganzzahl von 1bis mal 7erscheint 2.
Eingänge und Ausgänge
- Verwenden Sie in Ihrer Sprache alles, was Listen ähnelt. Die für die Eingabe und die Ausgabe verwendete Datenstruktur muss identisch sein.
- Die Eingabeliste enthält nur positive ganze Zahlen.
- Die Eingabeliste wird nicht leer sein.
- Sie können nicht davon ausgehen, dass die Eingabeliste sortiert ist.
- Die Reihenfolge in der Ausgabeliste ist unwichtig.
Testfälle
Input Output
[1] []
[7] [1, 2, 3, 4, 5, 6]
[1, 1, 1] []
[1, 8] [2, 3, 4, 5, 6, 7]
[3, 3, 3, 3] [1, 1, 1, 1, 2, 2, 2, 2]
[5, 2, 4, 5, 2] [1, 1, 3, 3, 4]
[5, 2, 4, 5, 5] [1, 1, 1, 2, 2, 3, 3, 3, 4, 4]
[5, 3, 3, 2, 7] [1, 1, 2, 4, 4, 5, 6, 6, 7]
Wertung
Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
iist das größte Element von L, es war ein Tippfehler in den Spezifikationen.
M=[1,1,2,2,3]zu , L=[3]während „Verschmelzung L und M führt zu einer Liste , die in identische Bereiche von ganzen Zahlen ganz aufspalten [1..i]“?
[1,2]. Ich werde es klarstellen, damit klar ist, dass es die minimale Anzahl von Bereichen ergeben sollte.
idas größte Element vonLoderM?