Biarkan menjadi daftar bilangan bulat positif tanpa urutan tertentu, dan yang dapat berisi duplikat. Tulis sebuah program atau fungsi yang menampilkan daftar bilangan bulat positif (yang urutannya tidak penting) sehingga penggabungan dan menghasilkan daftar terkecil yang seluruhnya dapat dibagi menjadi rentang identik bilangan bulat [ 1 .. i ] , di mana i adalah elemen terbesar di LM L M
Contoh
Mari L = [5,3,3,2,7]
. Elemen maksimum L
adalah 7
. Yang paling sering terjadi bilangan bulat spesifik adalah 2
( 3
muncul 2 kali). Oleh karena itu, kita perlu menampilkan daftar M
yang akan memungkinkan untuk menyelesaikan L
sehingga kita dapat membangun 2
rentang bilangan bulat dari 1
ke 7
.
Oleh karena itu, kita perlu output M = [1,1,2,4,4,5,6,6,7]
, sehingga setiap bilangan bulat dari 1
ke 7
muncul 2
kali.
Masukan dan keluaran
- Gunakan apa pun dalam bahasa Anda yang mirip dengan daftar. Struktur data yang digunakan untuk input dan output harus sama.
- Daftar input hanya akan berisi bilangan bulat positif.
- Daftar input tidak akan kosong.
- Anda tidak dapat menganggap daftar input diurutkan.
- Pemesanan dalam daftar output tidak penting.
Uji kasus
Input Output
[1] []
[7] [1, 2, 3, 4, 5, 6]
[1, 1, 1] []
[1, 8] [2, 3, 4, 5, 6, 7]
[3, 3, 3, 3] [1, 1, 1, 1, 2, 2, 2, 2]
[5, 2, 4, 5, 2] [1, 1, 3, 3, 4]
[5, 2, 4, 5, 5] [1, 1, 1, 2, 2, 3, 3, 3, 4, 4]
[5, 3, 3, 2, 7] [1, 1, 2, 4, 4, 5, 6, 6, 7]
Mencetak gol
Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
i
adalah elemen terbesar L
, itu salah ketik dalam spesifikasi.
M=[1,1,2,2,3]
untuk L=[3]
sementara "menggabungkan L dan M menghasilkan daftar yang sepenuhnya dapat dibagi menjadi rentang identik bilangan bulat [1..i]"?
[1,2]
. Saya akan mengklarifikasi sehingga jelas harus menghasilkan jumlah minimum rentang.
i
elemen terbesarL
atauM
?