3. What will be the output of the following TypeScript code snippet for
nums = [1,1,1,2,2,3] and
k = 2?
function topKFrequent(nums: number[], k: number): number[] {
const freqMap = new Map();
for (const num of nums) {
freqMap.set(num, (freqMap.get(num) || 0) + 1);
}
const minHeap = new MinPriorityQueue<{val: number, freq: number}>({priority: x => x.freq});
for (const [num, freq] of freqMap.entries()) {
minHeap.enqueue({val: num, freq});
if (minHeap.size() > k) {
minHeap.dequeue();
}
}
const result = [];
while (minHeap.size() > 0) {
result.push(minHeap.dequeue().element.val);
}
return result.reverse();
}
console.log(topKFrequent([1,1,1,2,2,3], 2));