1000324. 前 K 个高频元素
2026/1/12小于 1 分钟约 144 字
1000324. 前 K 个高频元素
难度: Medium
题目描述
English description is not available for the problem. Please switch to Chinese.
解题思路
代码实现
解决方案
java
import java.util.*;
class Solution {
public int[] topKFrequent(int[] nums, int k) {
Map<Integer, Integer> map = new TreeMap<>();
// 统计频率
for (int i = 0; i < nums.length; i++) {
map.put(nums[i], map.getOrDefault(nums[i], 0) + 1);
}
// 获取topk
ArrayList<Map.Entry<Integer, Integer>> list = new ArrayList<>();
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
if (list.size() == 0) {
list.add(entry);
} else {
Integer index = null;
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getValue() < entry.getValue()) {
index = i;
break;
}
}
if (index == null) {
list.add(entry);
} else {
list.add(index, entry);
}
}
if (list.size() == k + 1) {
list.remove(k);
}
}
return list.stream().mapToInt(Map.Entry<Integer, Integer>::getKey).toArray();
}
}