当前位置: 首页 > article >正文

每日一题 LCR 060. 前 K 个高频元素

LCR 060. 前 K 个高频元素

优先队列轻松解决

struct node{
    int num;
    int cnt;
    node(int n){
        num = n;
        cnt = 0;
    }
    bool operator < (const  node m) const{
        return cnt > m.cnt;
    }
};

class Solution {
public:
    vector<int> topKFrequent(vector<int>& nums, int k) {
        unordered_map<int,node*> mp;
        vector<node> vec;
        for(int i=0;i<nums.size();++i){
            if(mp.find(nums[i]) == mp.end()){
                node* temp = new node(nums[i]);

                mp[nums[i]] = temp; 
            }
            mp[nums[i]]->cnt++;
        }
        for(auto [u,v] : mp){
            vec.push_back(*v);
        }
        sort(vec.begin(),vec.end());
        vector<int> ans;
        for(int i=0;i<k;++i){
            ans.push_back(vec[i].num);
        }
        return ans; 
    }
};

使用拉姆达公式更为简介

class Solution {
public:
    vector<int> topKFrequent(vector<int>& nums, int k) {
        unordered_map<int,int> mp;
        for(auto num : nums){
            mp[num]++;
        }

        auto cmp = [](pair<int,int> &a, pair<int,int> &b){return a.second > b.second ;} ;

        priority_queue< pair<int,int> ,vector<pair<int,int>> ,decltype(cmp) > minHeap(cmp);

        for(auto [u,v] : mp ){
            minHeap.push({u,v});
            if(minHeap.size() > k){
                minHeap.pop();
            }
        }
        vector<int> ans; 
        while(!minHeap.empty()){
            ans.push_back(minHeap.top().first);
            minHeap.pop();
        }
        return ans;

    }
};

http://www.kler.cn/a/411259.html

相关文章:

  • RSA非对称加密解,支持分段加密解密、(公钥加密,私钥解密)、(私钥加密,公钥解密)
  • 嵌入式linux系统中图像处理基本方法
  • ️ 爬虫开发中常见的性能优化策略有哪些?
  • QT 跨平台实现 SSDP通信 支持多网卡
  • ES 和Kibana-v2 带用户登录验证
  • 使用java模拟记录软件免费试用次数
  • Spring Boot 3.4.0 发行:革新与突破的里程碑
  • 移动充储机器人“小奥”的多场景应用(下)
  • 103.【C语言】数据结构之TopK问题详细分析
  • Linux:基础开发工具
  • 信息系统项目管理师(第四版)概要
  • pip安装github上的开源软件包
  • 基于Java Springboot高校网上订餐平台
  • 了解 CSS position 属性
  • 嵌入式linux系统中图像处理基本方法
  • STM32C011开发(2)----nBOOT_SEL设置
  • 机器学习知识点
  • 拿下域名vip#bj
  • 软件工程第20、21章小测
  • 用Scala来解决成绩排名的相关问题
  • SQL server数据库
  • ffmpeg.js视频播放(转换)
  • R和Julia免疫细胞映射到组织切片
  • C语言嵌入式编程实战指南(二):高级技术和最佳实践
  • 云原生世界的多面体:K8s、容器云、裸金属与云原生的深度解析
  • 《通俗易懂 · JSqlParser 解析和构造SQL》