2013-10-15 33 views
-1

輸入:設置與元素的數量的連續流,我的意思是設置爲ADT,而不是作爲一個Python集,再加上minCount變量數據結構,以保持要素的連續流基於計數

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

我會得到N個這樣的一套與他們的計數元素。 minCount對於所有組都是靜態的。

我想要做的是有一個數據結構,其中我可以移動元素,其數量的增加。

假設minCount爲3.然後,當我得到第一個示例集合時,a將出現在一個列表中A,因爲它滿足minCount條件,而b和c不存在並且出現在列表B中。現在,如果下一組計數是

{'a' : 1, 'b' : 2, 'c': 2, 'd':1} 

則不會受到影響,因爲它的整體數量是4,但b和c均高於3已經走了,所以第一個列表A將有A,B,C與他們總數。 d將在列表B。很顯然,我可以用兩個列表輕鬆做到這一點。另一種方式是讓他們的計數的所有元素,然後做一個傳過此得到滿足minCount元素。

是否有更好的方法來做到這一點比我描述?我不需要近似的答案。

+0

的數據結構的問題被關閉? – gizgok

回答

0

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

鑑於哈希表具有O(1)預期的插入/查找/更新/刪除成本,您不能漸進地做得比這更好。

+0

我已經完全像這樣實現了它。 – gizgok