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

相关推荐
一尘之中5 小时前
从C语言底层设计到系统架构评估:软件架构知识体系全景
学习·系统架构·ai写作
小羊在睡觉6 小时前
力扣84. 柱状图中最大的矩形
后端·算法·leetcode·golang·go
3DVisionary6 小时前
蓝光三维扫描:医疗制造的精度焦虑怎么解
人工智能·算法·制造·蓝光三维扫描·医疗制造·三维检测·义齿检测
好评笔记6 小时前
机器学习面试八股——常用损失函数
人工智能·深度学习·算法·机器学习·校招
weixin_468466856 小时前
全局与局部注意力机制新手实战指南
人工智能·python·深度学习·算法·自然语言处理·transformer·注意力机制
_日拱一卒6 小时前
LeetCode:994腐烂的橘子
java·数据结构·算法·leetcode·深度优先
星夜夏空997 小时前
FreeRTOS学习(4)——内存映射
数据库·学习·mongodb
珂朵莉MM7 小时前
第七届全球校园人工智能算法精英大赛-算法巅峰赛产业命题赛第3赛季优化题--束搜索
人工智能·算法
不羁的木木7 小时前
ArkWeb实战学习笔记05-综合实战:构建混合应用
笔记·学习·harmonyos
橙橙笔记7 小时前
Python的学习第一部分
python·学习