讨论/《堆》 - 347. 前 K 个高频元素/
《堆》 - 347. 前 K 个高频元素
共 7 个回复

完结撒花

class Solution {
public:
    
    vector<int> topKFrequent(vector<int>& nums, int k) {
        unordered_map<int, int> cnt;
        for(auto num : nums){
            cnt[num] = cnt[num] + 1;
        }
        priority_queue<pair<int, int>> q;
        for(auto& it : cnt){
            q.push({-it.second, it.first});
            if(q.size() == k + 1)
                q.pop();
        }
        vector<int> result(k);
        for(int i=0;i<k;i++){
            result[i] = q.top().second;
            q.pop();
        }
        return result;
    }
};
2

活捉一枚小神兽!哈哈哈。

1

继续下一本咯~

1

完结撒花🎉

1

the shy来就全做完了

这不是我的胜利,是 Python 的胜利:

class Solution:
    def topKFrequent(self, nums: List[int], k: int) -> List[int]:
        freq = collections.Counter()
        for num in nums:
            freq[num] += 1
        
        return [x[0] for x in heapq.nlargest(k, freq.items(), key = lambda x: x[1])]

还有更过份的:

class Solution:
    def topKFrequent(self, nums: List[int], k: int) -> List[int]:
        return [x[0] for x in collections.Counter(nums).most_common(k)]

身体力行地解释了什么叫“人生苦短,我用 Python”

自己饲养员的书看的还是舒服🥳