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 Ladalah 7. Yang paling sering terjadi bilangan bulat spesifik adalah 2( 3muncul 2 kali). Oleh karena itu, kita perlu menampilkan daftar Myang akan memungkinkan untuk menyelesaikan Lsehingga kita dapat membangun 2rentang bilangan bulat dari 1ke 7.
Oleh karena itu, kita perlu output M = [1,1,2,4,4,5,6,6,7], sehingga setiap bilangan bulat dari 1ke 7muncul 2kali.
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.
iadalah 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.
ielemen terbesarLatauM?