Top K Frequent Elements
来源:互联网 发布:网络协议分析与仿真 编辑:程序博客网 时间:2024/05/16 14:30
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的含义,感觉本身就是按照频率已经排好,然后找出前K名频率的
import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;/* * 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]. *给定的数组已经是按照个数排好了的 * */public class Soultion {public static void main(String[] args) {// TODO Auto-generated method stub}public List<Integer> topKFrequent(int[] nums, int k) { Map<Integer, Integer> frequenceMap = new HashMap<>(); List<Integer>[] bucket = new List[nums.length+1];//如果大小仅仅是nums.length则会出现越界的情况,比如[1] 1 for(int num : nums) { if(frequenceMap.containsKey(num)) { frequenceMap.put(num, frequenceMap.get(num)+1); }else frequenceMap.put(num, 1); } for(int key : frequenceMap.keySet()) { int frequence = frequenceMap.get(key); if(bucket[frequence]==null) { bucket[frequence] = new ArrayList<>(); } bucket[frequence].add(key); } List<Integer> res = new ArrayList<>(); for(int i = bucket.length-1;i>=0&&res.size()<k;i--)//这样的话,如果是[1,1,1,2,2,3,3,4] k=2 则会输出[1,2,3] { if(bucket[i]!=null) { res.addAll(bucket[i]); } } return res; }}
0 0
- 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
- 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
- MySQL主主复制+LVS+Keepalived实现MySQL高可用性
- 面试
- 学习RAC小记-适合给新手看的RAC用法总结
- MDK临界区
- 关于nfs在ubuntu以及openwrt上的环境搭建
- Top K Frequent Elements
- 荷兰国旗
- 曝光融合Exposure Fusion 与ghost
- UINavigationBar 使用总结
- C++ explicit构造函数
- 用户空间与内核空间,进程上下文与中断上下文[总结]
- java 不让查询数据库sql一直在循环中执行的方法
- jquery $(document).ready() 与window.onload的区别
- 【NOI OJ】1818 红与黑