Anda harus menulis program atau fungsi yang menerima daftar bilangan bulat yang berbeda sebagai input dan output atau mengembalikan jumlah kemunculan nomor input dalam piramida angka terbalik berikut.
Mulai dari daftar asli di setiap langkah kami membuat yang baru dengan nilai maksimal dari setiap pasangan angka yang berdekatan (misalnya 5 1 2 6menjadi 5 2 6). Kami berhenti ketika hanya ada satu nomor dalam daftar.
Piramida penuh 5 1 2 6adalah
5 1 2 6
5 2 6
5 6
6
Jumlah kejadian yang dihasilkan adalah 3 1 2 4(untuk 5 1 2 6masing - masing).
Memasukkan
- Daftar satu atau lebih bilangan bulat tanpa pengulangan. (mis
1 5 1 6. tidak valid.)
Keluaran
- Daftar bilangan bulat positif. The
ielemen th daftar adalah jumlah kejadian dariijumlah masukan th di piramida.
Contohnya
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
Ini adalah kode-golf sehingga entri terpendek menang.
Teka-teki bonus: dapatkah Anda menyelesaikan masalah O(n*log n)tepat waktu?