从两个数组中找到元素的最佳组合,总共五个元素

时间:2019-06-30 21:02:26

标签: combinations

我有两个数组array_aarray_b。 每个数组可以包含零个到无限个元素之间的任意位置,但是我只需要从这两个元素中总共选择5个即可。

array_a的最佳组合为3,array_b的最佳组合为2。

如果两个阵列中的总数均小于其最佳数量,则应从另一个阵列中进行补偿(例如,array_a中的4个和array_b中的1个),以总计为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

1 个答案:

答案 0 :(得分:0)

您当然可以减少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