博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
347. Top K Frequent Elements
阅读量:5366 次
发布时间:2019-06-15

本文共 1125 字,大约阅读时间需要 3 分钟。

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].

Note: 

  • You may assume k is always valid, 1 ≤ k ≤ number of unique elements.
  • Your algorithm's time complexity must be better than O(n log n), where n is the array's size.

 

思路:其实思路很简单。扫一遍array,把数和次数存到hashmap。然后按照次数大的priority把entry存到prioirty queue里面。最后按照k的个数依次从priority queue里面读出来。有Map.Entry这个神奇包裹省事很多。

Map.Entry:https://docs.oracle.com/javase/7/docs/api/java/util/Map.Entry.html

public class Solution {    public List
topKFrequent(int[] nums, int k) { List
save=new ArrayList
(); if(nums.length==0) { return save; } Map
res=new HashMap
(); for(int i=0;i
> maxHeap = new PriorityQueue<>((a,b)->(b.getValue()-a.getValue())); for(Map.Entry
entry:res.entrySet()) { maxHeap.add(entry); } while(save.size()
entry = maxHeap.poll(); save.add(entry.getKey()); } return save; }}

 

 

 

转载于:https://www.cnblogs.com/Machelsky/p/5904866.html

你可能感兴趣的文章
WiCloud 商业Wi-Fi管理平台
查看>>
团队项目--未完待续
查看>>
双重标准,我该怎么解决
查看>>
python中的网页标签等字符处理
查看>>
Linux常用命令(十二)
查看>>
Linux常用命令(十五)
查看>>
Linux常用命令(十四)
查看>>
Linux常用命令(十七)
查看>>
Linux常用命令(十六)
查看>>
day 3 修改haproxy.cfg 作业
查看>>
sim usim Uim 区别
查看>>
网页中插入透明Flash的方法和技巧
查看>>
动态内存申请函数选择(realloc、malloc 、alloca、 calloc)
查看>>
获取元素属性get_attribute
查看>>
Python/jquery
查看>>
【BZOJ】【2132】圈地计划
查看>>
Java有没有goto?
查看>>
求不相邻金币相加和的最大值--动态规划1
查看>>
[转][osg]探索未知种族之osg类生物【目录】
查看>>
四十九. Zabbix报警机制 、 Zabbix进阶操作 、 监控案例
查看>>