MaxHeap<Freq> maxHeap = new MaxHeap<>();
for(int key: map.keySet()){
if(maxHeap.size() < k)
maxHeap.add(new Freq(key, map.get(key)));
else if(map.get(key) > maxHeap.findMax().freq){
maxHeap.extractMax();
maxHeap.add(new Freq(key, map.get(key)));
}
}
用最大堆处理的 else if
分支中,将 map 中的元素与最大堆的 root 节点比较是否正确?我觉得应该是与元素数量 k 的最大堆的最后一个元素比较才对。