combinations - 从两个数组中找到元素的最佳组合,总共五个元素
问题描述
我有两个数组array_a
和array_b
. 每个数组可以有零到无限数量的元素,但我只需要从两者中选择总共 5 个。
最佳组合是 3 fromarray_a
和 2 from array_b
。
如果任一数组中的总数小于其最佳数量,则应从另一个数组(例如 4array_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
解决方案
当然,您可以减少 if-else 语句。
source_a_count = 3
source_b_count = 2
if array_a.len() < 3
source_a_count = array_a.len()
source_b_count = 5 - source_a_count
else if array_b.len() < 2
source_b_count = array_b.len()
source_a_count = 5 - source_b_count