更多题解尽在 https://sugar.matrixlab.dev/algorithm 每日更新。
组队打卡,更多解法等你一起来参与哦!
LeetCode 347. 前 K 个高频元素,难度中等。
暴力
解题思路:使用 Map 统计每个数字的频率,然后根据 value 大小排序。
import java.util.*;
class Solution {
public int[] topKFrequent(int[] nums, int k) {
HashMap<Integer, Integer> mp = new HashMap<>();
for (int num : nums) {
if (mp.containsKey(num)) {
mp.put(num, mp.get(num) + 1);
} else {
mp.put(num, 1);
}
}
List<Map.Entry<Integer, Integer>> lst = new ArrayList<>(mp.entrySet());
lst.sort(Map.Entry.comparingByValue());
int[] result = new int[k];
for (int i = 0; i < k; ++i) {
result[i] = lst.get(lst.size() - i - 1).getKey();
}
return result;
}
}