给你一个整数数组 nums
和一个整数 k
,请你返回其中出现频率前 k
高的元素。你可以按 任意顺序 返回答案。
JAVA(***):
class Solution {
public int[] topKFrequent(int[] nums, int k) {
Map<Integer, Integer> map=new HashMap<>();
for (int num:nums) {
map.put(num,map.getOrDefault(num,0)+1);
}
return map.entrySet().stream()
.sorted(Comparator.comparingInt(entry -> -entry.getValue()))
.limit(k)
.mapToInt(entry -> entry.getKey())
.toArray();
}
}