Sie sollten ein Programm oder eine Funktion schreiben, die eine Liste unterschiedlicher Ganzzahlen als Ein- und Ausgabe empfängt oder die Anzahl der Vorkommen der Eingabenummern in der folgenden umgedrehten Zahlenpyramide zurückgibt.
Ausgehend von der ursprünglichen Liste erstellen wir in jedem Schritt eine neue Liste mit den Maximalwerten jedes Paars benachbarter Zahlen (zB 5 1 2 6wird 5 2 6). Wir hören auf, wenn die Liste nur eine Nummer enthält.
Die volle Pyramide für 5 1 2 6ist
5 1 2 6
5 2 6
5 6
6
Die resultierende Anzahl der Vorkommen ist 3 1 2 4(für 5 1 2 6).
Eingang
- Eine Liste mit einer oder mehreren Ganzzahlen ohne Wiederholung. (zB
1 5 1 6ist ungültig.)
Ausgabe
- Eine Liste positiver Ganzzahlen. Das
idritte Element der Liste ist die Anzahl der Vorkommen deridritten Eingabenummer in der Pyramide.
Beispiele
Eingabe => Ausgabe
-5 => 1
8 4 => 2 1
5 9 7 => 1 4 1
1 2 3 9 8 6 7 => 1 2 3 16 3 1 2
6 4 2 1 3 5 => 6 4 2 1 3 5
5 2 9 1 6 0 => 2 1 12 1 4 1
120 5 -60 9 12 1 3 0 1200 => 8 2 1 3 16 1 4 1 9
68 61 92 58 19 84 75 71 46 69 25 56 78 10 89 => 2 1 39 2 1 27 6 5 1 6 1 2 14 1 12
Dies ist Code-Golf, also gewinnt der kürzeste Eintrag.
Bonus Puzzle: Kannst du das Problem O(n*log n)rechtzeitig lösen ?