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

LeetCode刷题---哈希表---347

前 K 个高频元素

347. 前 K 个高频元素 - 力扣(LeetCode)

题目:

给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。

示例 1:

输入: nums = [1,1,1,2,2,3], k = 2
输出: [1,2]

示例 2:

输入: nums = [1], k = 1
输出: [1]

提示:

  • 1 <= nums.length <= 105
  • k 的取值范围是 [1, 数组中不相同的元素的个数]
  • 题目数据保证答案唯一,换句话说,数组中前 k 个高频元素的集合是唯一的

自己的思路和代码

思路:

        其实很简单的一道题。无非就是设置两个哈希表,第一个哈希表(不允许重复)记录每个元素已经每一个元素出现的次数。第二个哈希表(允许重复),将第一个哈希表的第一维和第二维进行对调。按序输出就可以了。

代码:
class Solution {
public:
    vector<int> topKFrequent(vector<int>& nums, int k) {
        unordered_map<int, int> table;
        multimap<int, int> standard;
        vector<int> result;

        for(int i=0; i<nums.size(); i++) {
            table[nums[i]]++;
        }

        for(auto itr=table.begin(); itr!=table.end(); itr++) {
            standard.insert({itr->second, itr->first});
        }
        int sum = 1;
        for(auto itr=standard.rbegin(); itr!=standard.rend(); itr++) {
            if(sum<=k) result.push_back(itr->second);
            sum++;
            //printf("%d %d\n", itr->first, itr->second);
        }
        return result;
    }
};

相关文章:

  • UE_C++ —— Container TMap
  • scratch猜年龄互动小游戏 2024年12月scratch四级真题 中国电子学会 图形化编程 scratch四级真题和答案解析
  • 问卷数据分析|SPSS实操之相关分析
  • Windows 图形显示驱动开发-IoMmu 模型
  • Docker 安装 Apache
  • HBuilderX中,VUE生成随机数字,vue调用随机数函数
  • JS逆向实战三:1688工厂信息
  • Qt ModbusTCP和ModBusRTU读写数据
  • 力扣hot100——无重复字符最长子串
  • 自制AirTag,支持安卓/鸿蒙/PC/Home Assistant,无需拥有iPhone
  • 解决 WSL Ubuntu 中 /etc/resolv.conf 自动重置问题
  • Redis如何解决热Key问题
  • AcWing 1236. 递增三元组(蓝桥杯C++ AB辅导课)
  • C语言流程控制学习笔记
  • 特力康输电线路杆塔倾斜智能监测装置:创新技术如何提升电网安全
  • 《千恋万花》无广版手游安卓苹果免费下载直装版
  • React之旅-02 创建项目
  • python: SQLAlchemy (ORM) Simple example using SQLite
  • 2023年河北省职业院校技能大赛网络系统管理赛项样题解法
  • 汽车零部件工厂如何通过工业一体机实现精准控制
  • 服装小订单接单平台/seo的主要分析工具
  • 河南省住房城乡建设主管部门网站/seo排名优化教学
  • 济宁疫情最新消息/常用的seo查询工具
  • 做号网站吗/百度推广开户公司
  • 网站主要内容包括什么/外链的作用
  • 网站建设主动型电话销售话术/电商项目策划书