当前位置: 首页 > news >正文

LeetCode算法学习之前K个高频元素

完整代码实现

class Solution {public int[] topKFrequent(int[] nums, int k) {// 1. 统计频率Map<Integer, Integer> frequencyMap = new HashMap<>();for (int num : nums) {frequencyMap.put(num, frequencyMap.getOrDefault(num, 0) + 1);}// 2. 使用最小堆(按频率排序)PriorityQueue<Integer> minHeap = new PriorityQueue<>((a, b) -> frequencyMap.get(a) - frequencyMap.get(b));// 3. 维护堆的大小为kfor (int num : frequencyMap.keySet()) {minHeap.offer(num);if(minHeap.size() > k) {minHeap.poll(); // 移除频率最小的元素}}// 4. 提取结果int[] result = new int[k];for (int i = 0; i < k; i++) {result[i] = minHeap.poll();}return result;}
}

解题思路:

核心思路
1. 统计频率:遍历数组,用哈希表记录每个元素的出现次数
2. 维护前 K 个高频元素:使用最小堆(优先队列)动态维护当前频率最高的 k 个元素
堆中按频率升序排列,堆顶是当前 k 个元素中频率最小的
当堆大小超过 k 时,移除堆顶元素(淘汰频率最低的)
3. 提取结果:最后堆中剩余的 k 个元素即为答案

http://www.dtcms.com/a/601226.html

相关文章:

  • 主流 LLM 推理/部署框架指标对比
  • 大模型上下文窗口详解与 RNN/Transformer 架构比较
  • C语言编译过程五个步骤 | 深入了解C语言编译的每个环节
  • seo建站需求海洋cms做电影网站好做吗
  • 个人网站建设素材广告制作合同范本
  • 新版 reese84 vmp 补环境逆向分析
  • 恢复数字序列 od
  • linux正则匹配
  • 【1.9】基于FPGA的costas环开发3——解调端低通滤波器模块
  • C语言编译器及其优化技术
  • 外国网站建站中国招商网
  • 自己建的网站也要注册域名吗wordpress云主机
  • 用 ssldump 跟踪 tls 问题
  • 《网络安全法》完成修改,AI安全正式“入法”
  • 算法笔记17 - 贪心算法介绍与思路 | 路灯摆放问题 | 活动安排问题 | 最低字典序拼接 | 金条分割问题 | 项目投资问题
  • CentOS系统一键安装Memcached教程
  • 构建本质安全:现代智能消防的物联网架构深度解析
  • 筑牢API安全防线
  • openssl自动升级(下载git相关)~~坑点
  • 用源代码做网站注册网站代码
  • 个人博客网站logo网络营销推广形式
  • 【计网】基于三层交换机的多 VLAN 局域网组建
  • Python键盘鼠标自动化库详解:从入门到精通
  • Prompt-R1:重新定义AI交互的「精准沟通」范式
  • 郑州国外网站建设克拉玛依市建设局网站
  • 国产化中间件东方通TongWeb环境安装部署(图文详解)
  • 防爆六维力传感器的本质安全,破解高危环境自动化难题
  • 达内网站开发做网站费用会计分录
  • 深圳营销型网站建设公司网络服务php网站开发打不开
  • GIT版本管理工具轻松入门 | TortoiseGit,Git 介绍软件安装配置,笔记01