Leetcode_347_Top K Frequent Elements
来源:互联网 发布:浅野菌子淘宝 编辑:程序博客网 时间:2024/06/04 20:00
这一题主要是让我们找出前k个最频繁出现的数字。比较简单的想法是先统计一遍所有数字出现的频率,然后根据频率来降序排列,最后输出前k个。说起来还挺容易实现的,但可能还是STL的map,vector用的不够熟练,因此也处理了好长时间T T另外本次还会讲到vector的sort函数,我们可以自定义一个规则来实现这个sort函数。
class Solution {public:static bool com_by_values(pair<int,int> p1,pair<int,int> p2 ){if(p1.second > p2.second)return 1;elsereturn 0;}vector<int> topKFrequent(vector<int>& nums, int k) { map<int,int>a; vector<int>result; int count = 0; for(int i=0;i<nums.size();i++){ a[nums[i]]++; } vector<pair<int,int> > num(a.begin(),a.end()); sort(num.begin(),num.end(),com_by_values);for(int i=0;i<k;i++){//cout<<num[i].first<<endl;result.push_back(num[i].first);}return result;}};bool com_by_values(pair<int,int>p1,pair<int,int>p2):
自定义的规则,传入的参数是我需要比较的两个值的类型,因为用在vector<pair<int,int> >num的排序中,也就是说两两比较的时候是两个对在进行比较。
什么要用vector<pair<int,int> >
之前选择用map,不能使用sort函数,还要自己写一个函数并且不能进行顺序的排列;另外pair<int, int> 存了一对一对的数,那么不会进行覆盖,之前用map选择将second的值作为key,将first的值作为value,这样导致如果出现同样次数的数,后面的数字会将前面的数字进行覆盖,导致结果错误。
vector<pair<int,int> > num(a.begin(),a.end());
选择STL容器的好处:
如果是数组的话你还要考虑开多大的数组,可能会出现runtime error
有一些已经写好的现成函数可以调用,比如vector的sort
另外STL容器支持key-value的形式,我们可以根据自己的需求来制定对应的关系
STL容器可用指针操作
0 0
- Leetcode_347_Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- leetCode_Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Linux远程连接图形界面的几种方法
- Hyper-V 虚拟设备简介
- 虚拟机桥接上不去网
- Toast消息提示和Notification通知
- LeetCode LeetCode 205. Isomorphic Strings(同形词)
- Leetcode_347_Top K Frequent Elements
- MAC,IP,路由传输封装过程
- 【BZOJ1854】【codevs3358】游戏,二分图最大匹配
- Linux script and scriptreplay(三)
- LeetCode 206. Reverse Linked List(翻转链表)
- linux core文件
- 数据研发工程师实习面试问题记录一
- mysql 登录、退出
- ASP.NET 状态管理(视图状态 ViewState)