Top K Frequent Words
Med Given a list of words and an integer k, return the top k frequent words in the list.
Thoughts
直观的想法,把每个str的频率统计一遍。可以维持一个大小为n的max queue,然后从中抽取k个元素.
但这样需要O(n)时间建堆,不能用一一插入建堆。
还可以维持一个大小为k的min queue, 当堆容量达到k则弹出最小的元素, O(nlgK)。
Code
Analysis
pq的size保持在k,一个n次inser/del操作,所以TC = O(nlgk)
Last updated
Was this helpful?