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
相关推荐
额额额对了7 分钟前
Linux C 多线程编程基础:从内存模型到生命周期管理
linux·开发语言·算法
INGNIGHT40 分钟前
1584.连接所有点的最小费用(最小生成树&并查集union find)
c++·leetcode
wabs66641 分钟前
关于二叉树【力扣144.二叉树的前序遍历的思考】
数据结构·c++·算法·leetcode·二叉树
郝学胜-神的一滴1 小时前
C++20 高级编程 004:从初始化、内存到const系列关键字
开发语言·算法·编程·软件构建·c++20
kyle~1 小时前
点云配准--- 迭代最近点 ICP 求解
线性代数·算法·机器学习
qq7422349841 小时前
Gradio 极简入门:三分钟为AI模型打造交互界面,并对比Streamlit与Dash如何选型
人工智能·算法·大模型·交互·dash
1000世界小札7 小时前
《大话数据结构》第9章精读:归并排序与快速排序完整 C++ 实现
数据结构·c++·算法
2601_9561219710 小时前
背包基础篇(01、完全、分组、多重、混合)
c++·算法·动态规划
兴通物联科技11 小时前
SMT PCB 微小 DataMatrix 码扫不动问题分析 兴通 XT8601B 600 万像素工业读码器落地实践
大数据·人工智能·单片机·嵌入式硬件·算法·计算机视觉