У меня есть два массива array_a
и array_b
.Каждый массив может иметь где угодно от нуля до бесконечного количества элементов, но мне нужно выбрать всего 5 из обоих.
Оптимальная комбинация - 3 из array_a
и 2 из array_b
.
Если сумма в одном массиве меньше его оптимального числа, она должна быть скомпенсирована из другого массива (например, 4 из array_a
и 1 из array_b
), чтобы в сумме составить 5.
Учитывая, что я знаю общее количество элементов в обоих массивах, каков наиболее эффективный способ вычисления оптимальной комбинации?
Мое решение с псевдокодом в Python следующее, но я чувствую, что это может бытьсделано еще эффективнее:
source_a_count = array_a.len()
source_b_count = array_b.len()
if source_a_count =< 3
source_b_count = 5 - source_a_count
else if source_b_count =< 2
source_a_count = 5 - source_b_count
else
source_a_count = 3
source_b_count = 2