LC 347前 K 个高频元素Top K Frequent Elements 中等
返回整数数组中出现频率前 k 高的元素,顺序任意,题目保证答案唯一。
思路 Counter 计频后按频率放入桶(下标即频率),从高频向低频收集满 k 个即返回;O(n)。
class Solution: def topKFrequent(self, nums: List[int], k: int) -> List[int]: cnt = Counter(nums) buckets = [[] for _ in range(len(nums) + 1)] for x, c in cnt.items(): buckets[c].append(x) ans = [] for c in range(len(buckets) - 1, 0, -1): for x in buckets[c]: ans.append(x) if len(ans) == k: return ans return ans