leetcode_middle_10_347. Top K Frequent Elements
2017-02-03 17:08
471 查看
题意:
给定一个整数数组,和一个有效的整数k,返回出现最多的k个数。
分析:
初步的想法是用map来存储整数和其出现的次数,再按值排序。
public class Solution {
public List<Integer> topKFrequent(int[] nums, int k) {
Map<Integer, Integer> map = new HashMap<>();
List<Integer> l = new ArrayList<>();
//将信息放入map
for(int i = 0; i < nums.length; i++){
if (!map.containsKey(nums[i])) {
map.put(nums[i], 0);
}else{
map.put(nums[i], map.get(nums[i]) + 1);
}
}
//按值降序排序
List<Map.Entry<Integer, Integer>> list = new ArrayList<Map.Entry<Integer, Integer>>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<Integer, Integer>>() {
public int compare(Map.Entry<Integer, Integer> o1, Map.Entry<Integer, Integer> o2) {
return o2.getValue().compareTo(o1.getValue());
}
});
//放入list
for(int i = 0 ; i < k ; i++) {
l.add(list.get(i).getKey());
}
return l;
}
}
给定一个整数数组,和一个有效的整数k,返回出现最多的k个数。
分析:
初步的想法是用map来存储整数和其出现的次数,再按值排序。
public class Solution {
public List<Integer> topKFrequent(int[] nums, int k) {
Map<Integer, Integer> map = new HashMap<>();
List<Integer> l = new ArrayList<>();
//将信息放入map
for(int i = 0; i < nums.length; i++){
if (!map.containsKey(nums[i])) {
map.put(nums[i], 0);
}else{
map.put(nums[i], map.get(nums[i]) + 1);
}
}
//按值降序排序
List<Map.Entry<Integer, Integer>> list = new ArrayList<Map.Entry<Integer, Integer>>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<Integer, Integer>>() {
public int compare(Map.Entry<Integer, Integer> o1, Map.Entry<Integer, Integer> o2) {
return o2.getValue().compareTo(o1.getValue());
}
});
//放入list
for(int i = 0 ; i < k ; i++) {
l.add(list.get(i).getKey());
}
return l;
}
}
相关文章推荐
- 347. Top K Frequent Elements [leetcode]
- LeetCode 347. Top K Frequent Elements - 频率最高的k个数
- [LeetCode]347. Top K Frequent Elements
- leetcode_347. Top K Frequent Elements
- leetcode 347. Top K Frequent Elements
- 【LeetCode】347. Top K Frequent Elements——基于Java的解决方案
- Leetcode 347. Top K Frequent Elements
- 【LeetCode】347. Top K Frequent Elements
- leetcode 347. Top K Frequent Elements
- LeetCode 347. Top K Frequent Elements
- [leetCode刷题笔记]347. Top K Frequent Elements
- [leetcode] 347. Top K Frequent Elements 解题报告
- 【LeetCode】347. Top K Frequent Elements 解题报告
- leetcode 347. Top K Frequent Elements
- [leetcode]347. Top K Frequent Elements
- leetcode 347. Top K Frequent Elements
- leetcode 347. Top K Frequent Elements 解题报告
- Leetcode 347. Top K Frequent Elements
- leetcode_347. Top K Frequent Elements 找出现频率最高的前k个元素
- Middle-题目132:347. Top K Frequent Elements(增补4)