【每天学习一点算法 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)

相关推荐
zyq99101_119 小时前
DFS算法实战:经典例题代码解析
python·算法·蓝桥杯·深度优先
jiayong2319 小时前
第 8 课:开始引入组合式函数
前端·javascript·学习
智者知已应修善业19 小时前
【51单片机单按键切换广告屏】2023-5-17
c++·经验分享·笔记·算法·51单片机
广州灵眸科技有限公司19 小时前
为RK3588注入澎湃算力:RK1820 AI加速卡完整适配与评测指南
linux·网络·人工智能·物联网·算法
qinian_ztc19 小时前
frida 14.2.18 安装报错解决
算法·leetcode·职场和发展
AI应用实战 | RE20 小时前
012、检索器(Retrievers)核心:从向量库中智能查找信息
人工智能·算法·机器学习·langchain
凤年徐20 小时前
C++手撕红黑树:从0到200行,拿下STL map底层核心
c++·后端·算法
Thomas.Sir20 小时前
AI 医疗之罕见病/疑难病辅助诊断系统从算法到实现【表型驱动与知识图谱推理】
人工智能·算法·ai·知识图谱
格鸰爱童话20 小时前
向AI学习项目技能(五)
java·学习
tankeven20 小时前
动态规划专题(03):区间动态规划从原理到实践(未完待续)
c++·算法·动态规划