Leetcode 692. Top K Frequent Words

Input: ["i", "love", "leetcode", "i", "love", "coding"], k = 2
Output: ["i", "love"]
Explanation: "i" and "love" are the two most frequent words.
Note that "i" comes before "love" due to a lower alphabetical order.
Input: ["the", "day", "is", "sunny", "the", "the", "the", "sunny", "is", "is"], k = 4
Output: ["the", "is", "sunny", "day"]
Explanation: "the", "is", "sunny" and "day" are the four most frequent words,
with the number of occurrence being 4, 3, 2 and 1 respectively.
  1. You may assume k is always valid, 1 ≤ k ≤ number of unique elements.
  2. Input words contain only lowercase letters.
  1. Try to solve it in O(n log k) time and O(n) extra space.
  1. have all the data structure, LinkedList, HashMap, PriorityQueue
  2. know how to write a comparator priority queue sorting function
  3. sorting: map.key number bigger -> smaller ; if key is same, compare alphbet order; queue: smaller to bigger
  1. using max- heap for the priorityqueue
  2. using Map<String, Integer> and map.entrySet()

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store