基于特定条件的多维数组最佳组合查找算法

时间:2019-01-31 10:12:05

标签: algorithm multidimensional-array combinations

我正在寻找一种算法,可以根据条件得出最佳组合(最佳==使用尽可能多的单元格,如果可能,请使用所有单元格)。源始终是多维数组,并且仅包含2个不同的元素。目标是使用数组中的所有元素,并且元素只能使用一次。

例如:

输入(多维数组):

AAAAA
ABBBA
AAAAA

第一个项目位置为0,0

条件:

  1. 每个组合必须包含至少一个A和至少一个B。

  2. 每个组合允许的最大单元数为6。

此示例的解决方案是:

三种不同的组合,它们使用输入中的每个单元格,并且每个组合的最大单元格数不超过6。

AA    A    AA
AB    B    BA
AA    A    AA

第一个组合在行0,2和列0,1之间

第二个组合在行0,2和列2,2之间

第三个组合在行0,2和列3,4之间

一个更现实的例子是

ABBBAAA
BBBBABB
AABAABA
ABBABBB
AAAAAAB
AAAAAAB

条件:

  1. 每个组合必须包含至少一个A和至少一个B。

  2. 每个组合允许的最大单元数为5。

0 个答案:

没有答案