leetcode 347.Top K Frequent Elements
2016-05-23 21:29
501 查看
链接:https://leetcode.com/problems/top-k-frequent-elements/
题目:
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:
题目大意:给你一个数组num和一个k值,找出在num数组中出现最频繁的前K个数。
思路:比较简单,利用hashMap统计出现次数,利用排序或者优先队列都可以进行最后的取出。题目没有对空间复杂度有要求,所以我们应该可以使用这种方法。代码如下:
题目:
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.
题目大意:给你一个数组num和一个k值,找出在num数组中出现最频繁的前K个数。
思路:比较简单,利用hashMap统计出现次数,利用排序或者优先队列都可以进行最后的取出。题目没有对空间复杂度有要求,所以我们应该可以使用这种方法。代码如下:
public class Solution { public List<Integer> topKFrequent(int[] nums, int k) { //利用hashMap,和优先级队列。 List<Integer> res=new ArrayList<Integer>(); Map<Integer,Integer> map=new HashMap<Integer,Integer>(); if(k>nums.length||k<1){ return res; } for(int num:nums){ if(map.containsKey(num)){ map.put(num,map.get(num)+1); }else{ map.put(num,0); } } ArrayList<Map.Entry<Integer,Integer>> list = new ArrayList<Map.Entry<Integer, Integer>>(map.entrySet()); Collections.sort(list, new Comparator<Map.Entry<Integer, Integer>>() { @Override public int compare(Map.Entry<Integer, Integer> o1, Map.Entry<Integer, Integer> o2) { return o2.getValue() - o1.getValue(); } }); int count = 0; while (count < k) res.add(list.get(count++).getKey()); return res; } }
相关文章推荐
- Easyui Tree 异步加载实例
- leetcode.52. N-Queens II
- 如何跨UI实现功能
- java字符串处理--String,StringBuffer,StringBuilder类
- phalcon builder 用法
- leetcode.51. N-Queens
- UIImage的 stretchableImageWithLeftCapWidth 方法的使用
- 【创建型】Builder模式
- Android UI组件和UI框架
- Bubble sort, Insertion sort, merge sort, quick sort, heap sort
- alpha、hidden、opaque的区别
- Android Studio中Module的build.gradle详解
- Range Sum Query系列(Immutable,Mutable,2D - Immutable)
- StringBuffer 与 StringBuilder
- 95. Unique Binary Search Trees II
- 【Arduino官方教程第零辑】基础部分 1-3 Arduino软件(IDE)
- GitHub的Pull Request
- UI进阶 KVO
- HDU 2604 Queuing
- StringBuilder与StringBuffer比较