package code;
/*
* 347. Top K Frequent Elements
* k
* Medium
* Hash Table, Heap
* hashmapO(n)nlg(k)
* Tips
*/
import java.util.*;
public class lc347 {
public static void main(String[] args) {
int[] nums = {1,1,1,2,2,3};
int k = 2;
System.out.println(topKFrequent(nums,2));
}
public static List topKFrequent(int[] nums, int k) {
HashMap hm = new HashMap();
TreeMap tm = new TreeMap();
List res = new ArrayList();
for (int i = 0; i < nums.length ; i++) { //hashmap
hm.put(nums[i], hm.getOrDefault(nums[i], 0)+1);
}
for( int i : hm.keySet() ){ //key,valuetreemap TreeMap
int freq = hm.get(i);
if(tm.containsKey(freq))
tm.get(freq).add(i);
else {
tm.put(freq, new ArrayList());
tm.get(freq).add(i);
}
}
while(res.size()= 0 && res.size() < k; pos--) {
if (bucket[pos] != null) {
res.addAll(bucket[pos]);
}
}
return res;
}
}