数据结构,用于根据计数保持连续的元素流

时间:2013-10-15 21:25:29

标签: algorithm data-structures

输入:连续的一组元素及其计数,我的意思是设置为ADT而不是python集,加上一个minCount变量

例如{'a': 3, 'b':1, 'c':2}, minCount = 3

我会用他们的计数得到这样一组元素。对于所有集合,minCount都是静态的。

我想要做的是拥有一个数据结构,我可以随着计数的增加移动元素。

假设minCount为3.然后当我得到第一个示例时,a将在一个列表A中出现,因为它满足minCount条件,而b和c不出现并且出现在列表{{1}中}。现在,如果下一组计数是

B

然后a不受影响,因为它的整体计数为4但b和c都超过3,因此第一个列表{'a' : 1, 'b' : 2, 'c': 2, 'd':1} 将包含a,b,c及其总计数。 d将在列表A中。显然,我可以通过两个列表轻松完成此操作。另一种方法是获取所有元素的计数,然后对其进行传递以获得满足minCount的元素。

有没有比我描述的更好的方法呢?我不需要大致的答案。

1 个答案:

答案 0 :(得分:0)

2个哈希表似乎是最好的方法 - 一个用于下面的元素,一个用于上面的元素(等于)minCount

鉴于哈希表有O(1)预期的插入/查找/更新/删除成本,你不能渐近地做得比这更好。