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 6
wird 5 2 6
). Wir hören auf, wenn die Liste nur eine Nummer enthält.
Die volle Pyramide für 5 1 2 6
ist
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 6
ist ungültig.)
Ausgabe
- Eine Liste positiver Ganzzahlen. Das
i
dritte Element der Liste ist die Anzahl der Vorkommen deri
dritten 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 ?