【发布时间】:2020-01-15 07:44:54
【问题描述】:
我有一个特定长度的数组(比如 8 个)1,2,2,3,3,4,5,6
我希望找到这个长度数组的子序列数(比如 4)。这是 8 选择 4 (8C4) = 70。
但是,在上面 70 个子序列的列表中,我不想计算具有重复元素的序列,例如1223 1224 1334 2233 应该被删除。
我有一个解决方案可以解决单个元素的重复问题(即数组是 1,2,2,3,4,5,6,7)这里重复的元素是 2C2*6C2 = 15,需要的答案是 55
对于中等大小的数组大小和 len(最大十万)是否有通用公式/算法。对于一般情况,答案是以模格式计算的。
【问题讨论】:
-
@DavidEisenstat 这与您链接到的问题不同,因为它们对“不同”的定义不同。这计算了 *make& 一个没有重复的子序列的方法的数量。那个人计算了您可以从一个字符串中制作的不同子序列的数量,包括重复项。
标签: algorithm combinations subsequence