Anda harus menulis sebuah program atau fungsi yang mengambil bilangan bulat non-negatif k
dan daftar bilangan bulat yang diurutkan L
sebagai input dan output atau mengembalikan daftar yang dihaluskan M
.
M
dibuat dari daftar naik L
dengan memasukkan paling banyak k
elemen integer sambil menjaga daftar diurutkan. Bilangan bulat yang dimasukkan harus dipilih sedemikian rupa sehingga perbedaan maju maksimum M
akan sekecil mungkin. Kami akan menyebut nilai terkecil ini sebagai "kehalusan".
Perbedaan maju daftar -1 3 8 11 15
adalah 4 5 3 4
dan perbedaan maju maksimum adalah 5
.
Dengan 2
insersi, kelancaran 2 10 15
is 4
dan kemungkinan output 2 6 10 11 15
dengan perbedaan forward 4 4 1 4
.
Memasukkan
- Bilangan bulat non-negatif
k
. - Daftar bilangan bulat naik
L
dengan setidaknya 2 elemen.
Keluaran
- Daftar bilangan bulat naik
M
. - Jika ada beberapa jawaban yang benar, keluarkan salah satu dari mereka (ada yang mencukupi).
- Solusi Anda harus menyelesaikan contoh uji kasus di bawah satu menit di komputer saya (saya hanya akan menguji kasus tutup. Saya memiliki PC di bawah rata-rata.).
Contohnya
Input ( k
, L
) => Output yang mungkin dan selisih maju maksimum (yang bukan merupakan bagian dari output) dalam tanda kurung
0, 10 20 => 10 20 (10)
2, 1 10 => 1 4 7 10 (3)
2, 2 10 15 => 2 6 10 11 15 (4)
3, 2 10 15 => 2 5 8 10 12 15 (3)
5, 1 21 46 => 1 8 15 21 27 33 39 46 (7)
5, 10 20 25 33 => 10 14 18 20 24 25 29 33 (4)
3, 4 4 6 9 11 11 15 16 25 28 36 37 51 61 => 4 4 6 9 11 11 15 16 22 25 28 36 37 45 51 59 61 (8)
15, 156 888 2015 => 156 269 382 495 608 721 834 888 1001 1114 1227 1340 1453 1566 1679 1792 1905 2015 (113)
8, -399 -35 -13 56 157 => -399 -347 -295 -243 -191 -139 -87 -35 -13 39 56 108 157 (52)
5, 3 3 3 => 3 3 3 3 (0)
Ini adalah kode-golf sehingga entri terpendek menang.
rF<seq>
membongkar tupel dua elemen.u
bekerja secara berbeda dane
tidak ada,urGHd
lebih pendek dari iturhd@d1
. Saya akan meletakkannya di halaman trik Pyth.U
.yvz
gagal kapanvz = 0
, tetapihvz
melakukan trik.Python 2, 104
Mencoba peningkatan maksimum yang berbeda
d
, mulai dari 1 dan menghitung. Mengisi celah masing-masing pasangan(p,x)
elemen berturut-turut dengan mengambild
angka ke-5 dalam celah tersebut. JikaM
lebih lama dari kuota memungkinkan, berulang untuk mencoba yang lebih tinggid
. Jika tidak, mengembalikan daftar elemen yang ditambahkan dan asli, diurutkan.Ini melakukan semua kasus uji tanpa penundaan pada mesin saya.
sumber