【发布时间】:2017-02-08 07:18:09
【问题描述】:
给定任意数量的数组放入一个数组中:
a = [1, 2, 4]
b = [2, 4]
c = [3]
d = [1, 2]
arrays = [a, b, c, d]
我想在这些数组中选择最少数量的联合来匹配 ruby 中的数组 [1, 2, 3, 4],即“正确”答案是 [a, c] 而不是 [b, c, d]。
出于我的目的,最少数量的数组是否完全重叠并不重要,只要它们能够满足匹配所需数组的标准即可。
我可以想象几种蛮力解决方案(例如,将每个元素与其他元素联合的嵌套循环),但我想知道是否有最佳/优雅的方法来获得这个结果。
【问题讨论】:
-
您可以通过删除其元素已包含在另一个数组中的任何数组来减少可能组合的数量。在您的示例中,
b和d都被a覆盖。
标签: arrays ruby optimization