输入:连续的一组元素及其计数,我的意思是设置为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的元素。
有没有比我描述的更好的方法呢?我不需要大致的答案。
答案 0 :(得分:0)
2个哈希表似乎是最好的方法 - 一个用于下面的元素,一个用于上面的元素(等于)minCount
。
鉴于哈希表有O(1)预期的插入/查找/更新/删除成本,你不能渐近地做得比这更好。