leetcode347. 前 K 个高频元素
一:题目
二:上码
class Solution {public:vector<int> topKFrequent(vector<int>& nums, int k) {unordered_map<int,int> m; //我们选用unordered_map 是因为其底层实现是哈希表,那么其//增删效率和查询效率较高unordered_map<int,int>:: iterator mt; multimap<int,int>mm;//这个容器中的key值不去重,其他的用法跟map一致multimap<int,int>:: reverse_iterator mmt;vector<int> ans;for(int i = 0; i < nums.size(); i++) {m[nums[i]]++;}for(mt = m.begin(); mt != m.end(); mt++) {int a = mt->second;int b = mt->first;mm.insert(make_pair(a,b));//将每个key值和其个数放入一个//不去重的 新的容器中(并将个数)} //作为新的key值for(mmt = mm.rbegin(); mmt != mm.rend(); mmt++) {if(k != 0){ans.push_back(mmt->second);k--;}}return ans;}
};
三:关于multimap的使用
1:初始化
multimap<string, int> mapStudent;//创建map
2:插入数据
mapStudent.insert(pair<string, int>("student_one", 22));
mapStudent.insert(pair<string, int>("student_two", 25));
mapStudent.insert(pair<string, int>("student_three", 21));或者使用make_pair
map<string, int> mapStudent;
mapStudent.insert(make_pair("student_one", 22));
mapStudent.insert(make_pair("student_two", 25));
mapStudent.insert(make_pair("student_three", 21));
3:遍历容器
(1):正向的遍历
//使用前向迭代器遍历map
map<string, int>::iterator iter;
for (iter = mapStudent.begin(); iter != mapStudent.end(); iter++)cout << iter->first << " " << iter->second << endl;
(2):逆向的遍历
map<string, int>::reverse_iterator iter;
for (iter = mapStudent.rbegin(); iter != mapStudent.rend(); iter++)cout << iter->first << " " << iter->second << endl; //反向遍历
(3):针对正向遍历 可以不用迭代器 可以用 auto 关键字
for (auto it = mapStudent.begin(); it != mapStudent.end(); it++)cout << it->first << " " << it->second << endl; //遍历
如有疑问 请留言!!! 一个人走的很快 但团结协作走的更远
leetcode347. 前 K 个高频元素相关推荐
- (补)算法训练Day13 | LeetCode150. 逆波兰表达式求值(栈应用);LeetCode239. 滑动窗口最大值(单调队列);LeetCode347. 前K个高频元素(小顶堆,优先级队列)
目录 LeetCode150. 逆波兰表达式求值 1. 思路 2. 代码实现 3. 复杂度分析 4. 思考 LeetCode239. 滑动窗口最大值 1. 思路 2. 代码实现 3. 复杂度分析 4. ...
- leetcode347. 前 K 个高频元素(排序)
给定一个非空的整数数组,返回其中出现频率前 k 高的元素. 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输入: nums = [1], ...
- Leetcode--347. 前k个高频元素
给定一个非空的整数数组,返回其中出现频率前 k 高的元素. 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输入: nums = [1], ...
- Leetcode题347、前K个高频元素(Python题解)Amazon面试题
问题: 题目来源:力扣(LeetCode) leetcode347.前K个高频元素 难度:中等 分析: 本题解提供四种方法,分别是python的Counter技巧.堆.桶排序.快排. 对于python ...
- 力扣347:前k个高频元素---leetcode347:Top K Frequent Elements
leetcode347题目链接:https://leetcode.cn/problems/top-k-frequent-elements 目录 一.题目描述 二.思路 1.什么是优先级队列呢? 2.什 ...
- 前K个高频元素(top k)(TX)
思路 这道题目主要涉及到如下三块内容: 1.要统计元素出现频率 2.对频率排序 3.找出前K个高频元素 首先统计元素出现的频率,这一类的问题可以使用map来进行统计. 然后是对频率进行排序,这里我们可 ...
- 统计list里面相同元素个数_LeetCode 第 347 号问题:前 K 个高频元素
本文首发于公众号「五分钟学算法」,是图解 LeetCode 系列文章之一. 个人网站:https://www.cxyxiaowu.com 今天分享的题目来源于 LeetCode 上第 347 号问题: ...
- 215.数组中的第K个最大元素/347. 前 K 个高频元素
2020-05-25 1.题目描述 数组中的第K个最大元素 2.题解 1.使用冒泡排序 2.使用快速排序 3.优先队列(内部是用堆来实现的) 3.代码 class Solution { public: ...
- 【LeetCode】【HOT】347. 前 K 个高频元素(哈希表+优先队列)
[LeetCode][HOT]347. 前 K 个高频元素 文章目录 [LeetCode][HOT]347. 前 K 个高频元素 package hot;import java.util.Arrays ...
最新文章
- java acr122 读取数据_使用ACR122U 从NTAG203Chip 读取数据
- C++用法的学习心得
- (原创总结) 几种通信编码方式
- BCD码与十进制的相互转换
- WIN10 vagrant和virtualbox虚拟机和一键搭建lnmp环境配置thinkphp虚拟主机
- C#经典系列-键值对
- 每秒处理10万订单的支付架构
- [Windows Phone] 如何在 Windows Phone 应用程式制作市集搜寻
- ArcGIS——vs2015安装arcgis engine不兼容
- 软件包管理 之 RPM 基础 《RPM 的介绍和应用》
- 如何生成二维码及注意事项
- RIFF和WAVE音频文件格式
- 【Linux】进程通信、同步、IO复用代码
- php ccbsign.rsasig,Maven整合SSM和建行龙支付
- 操作员或系统管理员拒绝了请求(0x800710E0) win10系统任务计划程序执行失败
- dataset中shuffle()、repeat()、batch()用法
- veracrypt取消加密卷_VeraCrypt 加密个人隐私(便携式 )
- 华为HMS全球应用创新大赛启动 百万美元奖金激励开发者
- 别人的面经(算法方向)
- 开源mock server系统
热门文章
- onlyoffice更新中文字体总结
- 发布composer包到 Packagist,并设置自动同步(从github到Packagist)
- 【QGIS入门实战精品教程】5.1:QGIS地理坐标转火星坐标系(GCJ02)案例教程
- Android之android8.1打开热点提示UID 10140 does not have Location permission和Location mode is enabled.
- 剑指offer之中序打印二叉树(非递归实现)
- Android之layout属性介绍
- php中的匿名函数简单使用
- python process 函数_Python Process创建进程的2种方法详解
- 哪个男孩不想拥有这种牌面?
- 亲一下就搞定的事,绝不花钱解决!