Write a function that takes two parameters: (1) a String representing a text
document and (2) an integer providing the number of items to return.
Implement the function such that it returns a list of Strings ordered by
word frequency, the most frequently occurring word first. Use your best
judgment to decide how words are separated. Your solution should run in O(n)
time where n is the number of characters in the document. Implement this
function as you would for a production/commercial system. You may use any
standard data structures.
我想到的是先hashmap 把每个unique的string 的个数保存下来。然后再用heap来找到
K top string。但是时间复杂度就是 nlogK 了。 怎么做到O(n)?