`

Top K Frequent Elements

 
阅读更多

 

import java.util.*;

public class Solution {

    public List<Integer> topKFrequent(int[] nums, int k) {

        HashMap<Integer, Integer> numberOccur = getNumOccur(nums);

        PriorityQueue<Integer> priorityQueue = new PriorityQueue<>((o1, o2) -> numberOccur.get(o1) - numberOccur.get(o2));

        Set<Map.Entry<Integer, Integer>> entries = numberOccur.entrySet();
        for(Map.Entry<Integer, Integer> entry:entries){
            priorityQueue.add(entry.getKey());
            if(priorityQueue.size()>k){
                priorityQueue.poll();
            }
        }
        ArrayList<Integer> result = new ArrayList<>();

        for (int i = 0; i < k; i++) {
            result.add(priorityQueue.poll());
        }
        Collections.reverse(result);
        return result;
    }

    private HashMap<Integer, Integer> getNumOccur(int[] nums) {
        HashMap<Integer, Integer> numberOccur = new HashMap<>();
        for (int num : nums) {
            if (numberOccur.get(num) == null) {
                numberOccur.put(num, 0);
            }
            numberOccur.put(num, numberOccur.get(num) + 1);
        }
        return numberOccur;
    }

}

 

分享到:
评论

相关推荐

    leetcode530-leetcode:力扣在线评委

    Frequent Elements 2016.06.03 319. Bulb Switcher 343. Integer Break 268. Missing Number 144. Binary Tree Preorder Traversal 2016.06.06 94. Binary Tree Inorder Traversal 318. Maximum Product of Word ...

    LeetCode最全代码

    462 | [Minimum Moves to Equal Array Elements II](https://leetcode.com/problems/minimum-moves-to-equal-array-elements-ii/) | [C++](./C++/minimum-moves-to-equal-array-elements-ii.cpp) [Python](./Python/...

    javalruleetcode-reverie:找工作

    java lru leetcode Java相关知识 基础知识 集合 ...Elements(堆排序、桶排序) LintCode 532 Reverse Pairs(归并排序的应用)(面试题51:数组中的逆序对) LeetCode 315 Count of Smaller Numbers A

    论文研究-Mining Top-k Approximate Frequent Patterns.pdf

    Mining Top-k Approximate Frequent Patterns,何增友,,requent pattern (itemset) mining in transactional databases is one of the most well-studied problems in data mining. One obstacle that limits the ...

    Leetcode:一些关于算法的经典leetcode问题和面试问题

    "最大堆" 和 "最小堆" 在 LeetCode 中的应用包括 "Kth 最大元素" 和 "Top K Frequent Elements"。 7. **滑动窗口**: - 滑动窗口在数组或字符串问题中十分常见,用于找到固定大小窗口内的最大值、最小值或满足特定...

    HPFP-Miner A Novel Parallel Frequent Itemset Mining Algorithm

    并行频繁相机挖掘算法 Frequent itemset ...by efficiently partitioning the list of frequent elements list over processors. The results of experiment show that HPFP-Miner has good scalability and performanc

    CloseGraph Mining Closed Frequent Graph Patterns

    根据提供的文件信息,下面是对“CloseGraph: Mining Closed Frequent Graph Patterns”一文的详细知识点解读。 文章标题《CloseGraph: Mining Closed Frequent Graph Patterns》指明了研究的主题,即在图挖掘领域中...

    Frequent Values(poj 3368) C

    在本题目"Frequent Values (poj 3368)"中,我们需要解决的是一个与数据处理和算法相关的编程问题。该题目是广东工业大学《算法和高级数据结构教程课程设计》的一部分,采用C语言进行实现。下面我们将深入探讨这个...

    Maximal frequent subgraph mining

    Valluri和K. Karlapalem来自印度海得拉巴的国际信息技术研究所,他们在该领域的研究工作为最大频繁子图挖掘提供了一种新的算法解决方案。他们的工作在国际数据挖掘会议ICDM 2006上得到了认可,并发表在ACM ...

    Mining Frequent Itemset 算法课件

    FP-Growth(Frequent Pattern Growth)算法是一种改进的频繁项集挖掘算法,相比于Apriori算法,它减少了扫描数据库的次数,从而提高了挖掘效率。 - **原理**:FP-Growth算法通过构建一棵FP树来压缩原始数据集,减少...

    Mining Association Rules and Frequent Itemsets

    这涉及到频繁项集(Frequent Itemsets)的识别,即那些频繁一起出现的商品集合。关联规则则是通过这些频繁项集来揭示商品之间的潜在关系,例如“如果购买了X,那么也有可能购买Y”的规则。 #### arules包:R语言中...

    Frequent Pattern Mining

    ### 频繁模式挖掘(Frequent Pattern Mining) #### 知识点一:频繁模式挖掘的概念 频繁模式挖掘是数据挖掘领域的一个重要分支,主要关注于发现数据集中频繁出现的项目集、序列或子图等模式。这些模式在数据集中...

    joom_frequent_模板

    本篇将详细介绍如何安装名为“joom_frequent_模板”的Joomla模板。 首先,我们需要了解的是,Joomla模板是决定网站外观和布局的关键元素。它们控制着页面的样式,颜色,字体以及内容的排列方式。"joom_frequent_...

    BIDE算法PPT, frequent sequence mining

    BIDE算法PPT,Frequent Sequence Mining BIDE算法是Frequent Sequence Mining领域中的一种高效算法,主要用于挖掘频繁序列。该算法的提出是为了解决传统算法在空间和时间方面的不足之处。 Frequent Closed ...

    Frequent Close Pattern Mining.ppt

    Frequent Close Pattern Mining.ppt

    【留学生作业代写资料assignment英文原版】Python作业之Frequent Itemset Mining Using MapReduce

    这是我从国外知名大学cs专业留学的同学那里收集来的作业资料(英文原版) 【留学生作业代写资料assignment英文原版】Python作业之Frequent Itemset Mining Using MapReduce

    Mining Frequent Patterns without Candidate

    文章提出了一种新的数据挖掘方法——FP-growth(Frequent Pattern growth),用于高效地挖掘交易数据库、时间序列数据库等各类数据库中的频繁模式。该方法相较于传统的基于候选集的Apriori算法,通过避免生成大量的...

    Sliding window based weighted maximal frequent pattern mining over data streams

    ### 滑动窗口下的加权最大频繁模式挖掘在数据流中的应用 #### 论文概览 本文献是一篇关于数据流分析的经典SCI论文,发表于2013年。该研究主要聚焦于滑动窗口模型下针对数据流进行加权最大频繁模式挖掘的方法。...

Global site tag (gtag.js) - Google Analytics