LeetCode热题100-前 K 个高频元素

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

哈希统计 + 小顶堆思路:

  1. 先用字典统计每个数字出现次数
  2. 大小为 K 的小顶堆保存频率最高的 K 个
  3. 最后取出堆中元素
  4. 时间复杂度 O(n log k)
python 复制代码
import heapq
from collections import Counter
class Solution:
    def topKFrequent(self, nums: List[int], k: int) -> List[int]:
        count = Counter(nums)
        topk = heapq.nlargest(k, count.keys(), key=lambda x:count[x])

        return topk
相关推荐
营养充电站1 小时前
KMP全栈开发:从Android到AI Agent的技术演进与实践
人工智能·算法·docker·jupyter
技术小黑2 小时前
RNN算法实战系列05 | 天气预测
人工智能·rnn·算法
Ivanqhz4 小时前
php8 use-def链
算法·php
spter。4 小时前
AI 面试相同请求为什么会重复调用,如何解决
人工智能·面试·职场和发展
evans在进步5 小时前
LeetCode 189 轮转数组:三次反转原地解决,图解 Java 实现
java·算法·leetcode
歌_顿5 小时前
Drawing_To_Model
算法
龍德明宇5 小时前
AI不会疼-龍德明宇
人工智能·算法·大语言模型llm·负主体性·ai存在论
302wanger5 小时前
程序员写 SOP:把脑子里的流程固化下来
算法
科学实验家6 小时前
完全背包
算法