TopKFrequent

Published at 2022-03-30

class Solution:
    def topKFrequent(self, nums: List[int], k: int) -> List[int]:
        freq = {}
        for n in nums:
            if n in freq: freq[n] += 1
            else: freq[n] = 1
        
        sort = sorted(freq.items(), key=lambda x:x[1], reverse=True)
        
        answer = []
        for i in range(k):
            answer.append(sort[i][0])
        
        return answer
/**
 * @param {number[]} nums
 * @param {number} k
 * @return {number[]}
 */
var topKFrequent = function(nums, k) {
    const map = new Map();
    for(let i=0; i<nums.length; i++){
        map.set(nums[i], (map.get(nums[i]) || 0) + 1);
    }
    
    const arr = [...map];
    
    return arr.sort((a,b) => b[1]-a[1]).map((item) => item[0]).slice(0, k)
};