【每天学习一点算法 2026/03/22】前 K 个高频元素

每天学习一点算法 2026/03/22

题目:前 K 个高频元素

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

要统计出现频率前 k 高的元素,首先肯定要统计所有元素出现的次数,这个我们可以用 map 统计。

然后我们就可以得到一个 元素和出现频率 组成的新数组,这样我们就可以排序取出前 k 的元素了。

typescript 复制代码
function topKFrequent(nums: number[], k: number): number[] {
  if (k === nums.length) return nums
  const map = new Map()
  const res = []
  for (let num of nums) {
    if (map.has(num)) {
      map.set(num, map.get(num) + 1)
    } else {
      map.set(num, 1)
    }
  }
  map.forEach((value, key) => {
    res.push([key, value])
  })

  return res.sort((a, b) => b[1] - a[1]).map(item => item[0]).slice(0, k)
};

题目来源:力扣(LeetCode)

相关推荐
大鱼>11 分钟前
宠物行为识别AI算法详解:从数据采集到模型部署的完整方案
人工智能·深度学习·算法·宠物
王莎莎-MinerU15 分钟前
解析回归集:RAG 和 Agent 上线前,先把表格、公式、版面测清楚
人工智能·算法·数据挖掘·回归·pdf·ocr
LiaoWL12319 分钟前
【SpringCloud合集-06】Spring Cloud Gateway网关学习笔记
笔记·学习·spring cloud
KaMeidebaby20 分钟前
卡梅德生物技术快报|兔单克隆抗体:噬菌体 Fab 免疫文库搭建实操:兔单克隆抗体重组构建完整参数
前端·网络·数据库·人工智能·算法
AndrewHZ22 分钟前
【LLM技术全景】混合精度与分布式训练:训练大模型的工程奥秘
人工智能·分布式·深度学习·算法·ai·语言模型·llm
鱼听禅34 分钟前
ubuntu学习笔记-使用ls-ml-toolkit工具识别Label Studio数据数据训练yolo模型
笔记·学习·ubuntu
AI科技星1 小时前
基于全域数学公理体系求解三元约束极值题【乖乖数学】
人工智能·算法·机器学习·密码学·拓扑学·乖乖数学·全域数学
伊玛目的门徒9 小时前
试用leetcode之典中典 二数之和问题
java·算法·leetcode
Jerry9 小时前
LeetCode 226. 翻转二叉树
算法
想做小南娘,发现自己是女生喵10 小时前
【无标题】
数据结构·算法