Diberikan array bilangan bulat a
yang berisi n bilangan bulat, dan bilangan bulat tunggal x
; menghapus jumlah elemen paling sedikit dari a
untuk membuat jumlah a
sama dengan x
. Jika tidak ada kombinasi a
kaleng x
, kembalikan nilai palsu.
Seperti yang ditunjukkan dalam komentar, ini adalah set maksimum dengan jumlah x , maaf otak matematika saya yang lebih rendah. Saya lupa banyak istilah sejak kuliah.
Contoh (Kebenaran):
f([1,2,3,4,5,6,7,8,9,10], 10) = [1,2,3,4]
f([2,2,2,2,2,2,2,2,2], 10) = [2,2,2,2,2]
f([2,2,2,2,-2,-2,-2,-4,-2], -8) = [2,2,-2,-2,-2,-4,-2]
f([-2,-4,-2], -6) = [-4,-2] OR [-2,-4]
f([2,2,2,4,2,-2,-2,-2,-4,-2], 0) = [2,2,2,4,2,-2,-2,-2,-4,-2]
(Tidak berubah)
f([], 0) = []
(Kasus Jumlah-Nol yang Tidak Berubah)
Contoh (Falsy, nilai non-array yang konsisten):
Tidak Mungkin Membuat Kasus: f([-2,4,6,-8], 3) = falsy (E.G. -1)
Zero Sum Case: f([], non-zero number) = falsy (E.G. -1)
- Catatan: nilai apa pun seperti
[-1]
tidak dapat valid untuk falsy, karena ini merupakan output potensial yang sebenarnya.
Aturan:
- Input dapat diambil dalam bentuk array, atau sebagai daftar argumen, yang terakhir atau yang pertama
x
. - Output dapat berupa daftar bilangan bulat yang dibatasi. EG
1\n2\n3\n
atau[1,2,3]
. - Nilai apa pun dapat digunakan sebagai indikator palsu, selain array bilangan bulat.
- Kode Anda harus memaksimalkan ukuran array akhir, pesanan tidak masalah.
- EG Untuk
f([3,2,3],5)
keduanya[2,3]
dan[3,2]
sama-sama valid. - EG Untuk
f([1,1,2],2)
Anda hanya dapat kembali[1,1]
karena[2]
lebih pendek.
- EG Untuk
- Baik jumlah
a
dan nilaix
akan lebih kecil dari2^32-1
dan lebih besar dari-2^32-1
. - Ini adalah kode-golf , kemenangan byte-count terendah.
- Jika ada beberapa subarrays dengan ukuran yang sama yang valid, itu tidak dapat diterima untuk menghasilkan semuanya. Anda harus memilih satu dan mengeluarkan yang itu.
Beri tahu saya jika ini telah diposting, saya tidak dapat menemukannya.
Posting yang saya temukan seperti ini : Terkait tetapi ditutup , ...