[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/yanlingli3799/algorithm/master/Leetcode_692_115_java.java [Back]  [Original]

package data.leetcode.hash; import java.util.*; public class Leetcode692 { /** * k *

* *

* 1 *

* : ["i", "love", "leetcode", "i", "love", "coding"], k = 2 * : ["i", "love"] * : "i" "love" 2 * "i" "love" */ /** * : 17 ms, Top K Frequent WordsJava83.42% * : 41.2 MB, Top K Frequent WordsJava74.16% * @param words * @param k * @return */ public static List topKFrequent(String[] words, int k) { HashMap wordMap = new HashMap(); List wordList = new ArrayList(); for (int i = 0; i < words.length; i++) { Integer node = wordMap.get(words[i]); if (node == null) node = 0; node += 1; wordMap.put(words[i], node); } List list = new ArrayList(wordMap.entrySet()); Collections.sort(list, new Comparator() { @Override public int compare(Map.Entry o1, Map.Entry o2) { int code = o1.getValue() - o2.getValue(); if (code != 0) { return -code; } else { return o1.getKey().compareTo(o2.getKey()); } } }); List entries = list.subList(0, k); for (Map.Entry entry : entries) { wordList.add(entry.getKey()); } return wordList; } public static void main(String[] args) { String words[] = {"i", "love", "leetcode", "i", "love", "coding"}; topKFrequent(words, 3); } }


Web Proxy Viewer  |  New URL  |  Original Page