当前位置: 首页 > 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;}
};

http://www.lryc.cn/news/539588.html

相关文章:

  • LED灯闪烁实验:实验介绍
  • 论文笔记(七十二)Reward Centering(一)
  • C#之上位机开发---------C#通信库及WPF的简单实践
  • 使用 pjsua2 开发呼叫机器人,批量拨打号码并播放固定音频
  • 从函数到神经网络
  • 用自定义注解实现Excel数据导入中的枚举值校验
  • 网络安全技术pat实验 网络安全 实验
  • 4、IP查找工具-Angry IP Scanner
  • 1018. 锤子剪刀布 (20)-PAT乙级真题
  • MyBatis 中 SqlMapConfig 配置文件详解
  • 复杂项目中的多级WBS应该如何分解?
  • 红蓝对抗之常见网络安全事件研判、了解网络安全设备、Webshell入侵检测
  • 使用 CodeMirror 6 实现插入文本及替换选中文本功能
  • Huatuo热更新--如何使用
  • Flask实现高效日志记录模块
  • scroll、offset、client三大家族和getBoundingClientRect方法
  • JWT 令牌
  • Python基于Flask的豆瓣Top250电影数据可视化分析与评分预测系统(附源码,技术说明)
  • JavaScript数组-遍历数组
  • 基于Flask的第七次人口普查数据分析系统的设计与实现
  • 解决DeepSeek服务器繁忙的有效方法
  • 分词器(Tokenizer) | 有了分词器,为什么还需要嵌入模型
  • VisionTransformer(ViT)与CNN卷积神经网络的对比
  • 计算机视觉+Numpy和OpenCV入门
  • Vue 3 工程化打包工具:从理论到实践 (下篇)
  • java经验快速学习python!
  • 爬虫破解网页禁止F12
  • 从零开始构建一个语言模型中vocab_size(词汇表大小)的设定规则
  • Jenkins插件管理切换国内源地址
  • Q - learning 算法是什么