LeetCode---Top K Frequent Elements解题分析
来源:互联网 发布:嵌入式c笔试 编程题 编辑:程序博客网 时间:2024/05/16 07:18
题意描述:给定一个整数数组和数字K,返回数组中出现最频繁的K个元素。如:
输入[1,1,1,2,2,3],K=2,返回[1,2]。要求时间复杂度为O(nlogn)
解题思路:考虑到统计字符及其出现频率,自然就想到运用HashMap数据结构,key为元素,value为该元素出现次数。然后将结果按照value排序,返回前K个key值即为所求
***这里主要是对HashMap中的数据按照value值排序***
public List<Integer> topKFrequent(int[] nums, int k) {Map<Integer, Integer> map = new HashMap<>();for(int num : nums){Integer count = map.get(num);if(count == null)count = 0;map.put(num, count+1);}//对map结果根据value值进行排序List<Map.Entry<Integer, Integer>> entryList = new ArrayList<>(map.entrySet());Collections.sort(entryList, new Comparator<Map.Entry<Integer, Integer>>() { public int compare(Map.Entry<Integer, Integer> o1, Map.Entry<Integer, Integer> o2) { //return (o1.getKey() - o2.getKey());//根据key排序 return (o2.getValue() - o1.getValue());//根据value排序 //return (o1.getKey()).toString().compareTo(o2.getKey()); } }); List<Integer> res = new ArrayList<>();for (int i = 0; i < entryList.size() && i<k; i++) { System.out.println(entryList.get(i)); res.add(entryList.get(i).getKey());} return res;}
0 0
- LeetCode---Top K Frequent Elements解题分析
- LeetCode|Top K Frequent Elements
- 【Leetcode】Top K Frequent Elements
- LeetCode:Top K Frequent Elements
- [LeetCode] Top K Frequent Elements
- LeetCode:Top K Frequent Elements
- 【leetcode】Top K Frequent Elements
- LeetCode Top K Frequent Elements
- LeetCode:Top K Frequent Elements
- leetcode:Top K Frequent Elements
- LeetCode Top K Frequent Elements
- leetcode Top K Frequent Elements
- LeetCode: Top K Frequent Elements
- LeetCode Top K Frequent Elements
- [LeetCode] Top K Frequent Elements
- LeetCode : Top K Frequent Elements
- Leetcode Top K Frequent Elements
- [leetcode]Top K Frequent Elements
- [BZOJ3864]Hero meet devil(状压dp)
- MergeSort(递归)
- android 移植ffmpeg
- vuejs学习小记 单次插值
- Html中修改视频播放器的param属性的value的值
- LeetCode---Top K Frequent Elements解题分析
- svn 图标所表示的意思
- 下载Google Play中的APK
- Android静态安全检测 -> Intent Scheme URL 漏洞
- 初来驾到,Android小白
- 分布式任务调度平台XXL-JOB
- leetcode整理(java)
- andriod之乐学成语
- POJ 3109 Inner Vertices 树状数组