Middle-题目132:347. Top K Frequent Elements(增补4)

转载 2016年05月31日 20:29:01

题目原文:
Given a non-empty array of integers, return the k most frequent elements.

For example,
Given [1,1,1,2,2,3] and k = 2, return [1,2].
题目大意:
输入一个数组和数字k,求频次最高的k个数字。
分析:
用hashmap记录频次

class Solution {
public:
    vector<int> topKFrequent(vector<int>& nums, int k) {
        //一,统计处频次
        unordered_map<int,int> mapping;
        for(int number : nums)
            mapping[number]++;
        //二,根据频次压入最大堆中    
        // pair<first, second>: first is frequency,  second is number
        priority_queue<pair<int,int>> pri_que; //最大堆
        for(auto it = mapping.begin(); it != mapping.end(); it++)
            pri_que.push(make_pair(it->second, it->first));
        //三,获取结果    
        while(result.size() < k){
                result.push_back(pri_que.top().second);
                pri_que.pop();
        }
        return result;
    }
private:
    vector<int> result;
};

成绩:
36ms

第K大/Top K及其简单实现

第K大:快排、最小堆、计数、二分、排序k个
  • u012469987
  • u012469987
  • 2016年08月14日 19:28
  • 2696

Top K Frequent Elements 选出数组中出现次数最多的k个元素

原题地址:https://leetcode.com/problems/top-k-frequent-elements/,这个题目要求时间复杂度不能超过O(nlgn),也就是说常规的排序算法不可行(排序...
  • x_i_y_u_e
  • x_i_y_u_e
  • 2016年08月22日 17:49
  • 1067

排序算法整理(6)堆排序的应用,top K 问题

top K问题是这样的,给定一组任意顺序的数,假设有n个。如何尽快地找到它们的前K个最大的数? 首先,既然是找前K个最大的数,那么最直观的办法是,n个数全部都排序,然后挑出前K个最大数。但是这样显然做...
  • feliciafay
  • feliciafay
  • 2013年10月03日 12:51
  • 5895

leetcode 347. Top K Frequent Elements

1.题目Given a non-empty array of integers, return the k most frequent elements. 一个非空数组,要求返回前K个最频繁出现的元...
  • u010529144
  • u010529144
  • 2017年06月27日 23:49
  • 198

LeetCode笔记:347. Top K Frequent Elements

查找数组中出现的次数头几个的元素
  • Cloudox_
  • Cloudox_
  • 2017年01月08日 15:29
  • 553

【LeetCode】347. Top K Frequent Elements——基于Java的解决方案

347. Top K Frequent Elements Total Accepted: 12022 Total Submissions: 28556 Difficulty: Medium ...
  • Jin_Kwok
  • Jin_Kwok
  • 2016年05月31日 22:43
  • 2031

[leetcode] 347. Top K Frequent Elements

Given a non-empty array of integers, return the k most frequent elements. For example, Given [1,1,1...
  • TstsUgeg
  • TstsUgeg
  • 2016年05月03日 20:25
  • 1720

【leetcode】347. Top K Frequent Elements

Difficulty:medium Given a non-empty array of integers, return the k most frequent elements. Fo...
  • chengych
  • chengych
  • 2016年09月05日 23:17
  • 167

[leetcode]347. Top K Frequent Elements -- JavaScript 代码

[leetcode]347. Top K Frequent Elements -- JavaScript 代码
  • u014328357
  • u014328357
  • 2016年08月29日 16:09
  • 398

leetcode_347 Top K Frequent Elements

题目分析:给定一个数组,返回数组中出现此多最多的k个元素,要求时间复杂度小于O(nlogn)。 解题思路:1)利用map实现统计数组中每个元素出现的次数;2)对1)统计的map按照元素出现的次数进行排...
  • yzhang6_10
  • yzhang6_10
  • 2016年05月12日 22:04
  • 1327
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Middle-题目132:347. Top K Frequent Elements(增补4)
举报原因:
原因补充:

(最多只允许输入30个字)