- 前 K 个高频元素
给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。
示例 1:
输入: nums = [1,1,1,2,2,3], k = 2
输出: [1,2]
示例 2:
输入: nums = [1], k = 1
输出: [1]
public int[] topKFrequent(int[] nums, int k) {
HashMap<Integer,Integer>map=new HashMap<>();
for(int i=0;i<nums.length;i++)
{
map.put(nums[i],map.getOrDefault(nums[i],0)+1);
}
int[] occ=new int[k];
int maxtime=Integer.MIN_VALUE;
for(Map.Entry<Integer,Integer>entry:map.entrySet())
{
if(entry.getValue()>maxtime)
maxtime=entry.getValue();
}
while(k>0)
{
for(Map.Entry<Integer,Integer>entry:map.entrySet())
{
if(entry.getValue()==maxtime)
{ occ[k-1]=entry.getKey();
k--;
}
}
maxtime--;
}
return occ;
}