首页 > 解决方案 > 从两个数组中找到元素的最佳组合,总共五个元素

问题描述

我有两个数组array_aarray_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

标签: combinations

解决方案


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

推荐阅读