Given a list of elements, find the the frequency of elements that are greater than or equal to k.
For example, a list of [3, 2, 3, 1, 1, 1] and k=2 should return [1, 3] .
function top_k(elements: number[], k: number) { const set: { [key: number]: number } = {} for (let e of elements) { const count = set[e] ?? 0 set[e] = count + 1 } let output: number[] = [] const entries: [string, number][] = Object.entries(set) entries.sort((a, b) => b[1] - a[1]) let count = 0 for (let [key, v] of entries) { if (count < k) { output.push(Number(key)) count++ } else { break } } console.log(output) } // { 3: 2, 2: 1, 1: 3} top_k([3, 2, 3, 1, 1, 1], 2) top_k([3, 2, 3, 1, 1, 1], 3) top_k([3, 2, 3, 1, 1, 1], 1)