给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。

- class Solution {
- public int[] topKFrequent(int[] nums, int k) {
- Map
map = new HashMap<>(); - int[] res = new int[k];
- for(int i : nums){
- if(map.containsKey(i)){
- map.put(i,map.get(i)+1);
- }else{
- map.put(i,1);
- }
- }
- int maxCount = 0;
- for(Map.Entry
entry : map.entrySet()){ - if(entry.getValue() > maxCount){
- maxCount = entry.getValue();
- }
- }
- while(k > 0){
- for(Map.Entry
entry : map.entrySet()){ - if(entry.getValue() == maxCount){
- res[k-1] = entry.getKey();
- k--;
- }
- }
- maxCount--;
- }
- return res;
- }
- }