È necessario scrivere un programma o una funzione che riceve un elenco di numeri interi distinti come input e output o restituisce il numero di occorrenze dei numeri di input nella seguente piramide numerica capovolta.
A partire dall'elenco originale in ogni passaggio ne creiamo uno nuovo con i valori massimi di ogni coppia di numeri adiacenti (ad esempio 5 1 2 6diventa 5 2 6). Ci fermiamo quando c'è un solo numero nell'elenco.
La piramide completa per 5 1 2 6è
5 1 2 6
5 2 6
5 6
6
Il numero risultante di occorrenze è 3 1 2 4( 5 1 2 6rispettivamente).
Ingresso
- Un elenco di uno o più numeri interi senza ripetizione. (ad es
1 5 1 6. non è valido.)
Produzione
- Un elenco di numeri interi positivi. L'
ielemento th dell'elenco è il numero di occorrenze delinumero th di input nella piramide.
Esempi
Input => Output
-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
Questo è code-golf, quindi vince l'ingresso più breve.
Puzzle bonus: puoi risolvere il problema in O(n*log n)tempo?