3005. 最大频率元素计数

简介: 3005. 最大频率元素计数

说在前面

🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。

题目描述

给你一个由 正整数 组成的数组 nums

返回数组 nums 中所有具有 最大 频率的元素的 总频率

元素的 频率 是指该元素在数组中出现的次数。

示例 1:

输入: nums = [1,2,2,3,1,4]
输出: 4
解释: 元素 1 和 2 的频率为 2 ,是数组中的最大频率。
因此具有最大频率的元素在数组中的数量是 4 。

示例 2:

输入: nums = [1,2,3,4,5]
输出: 5
解释: 数组中的所有元素的频率都为 1 ,是最大频率。
因此具有最大频率的元素在数组中的数量是 5 。

提示:

  • 1 <= nums.length <= 100
  • 1 <= nums[i] <= 100

解题思路

使用哈希表统计每个数字在数组中出现的频次,记录出现频次最大的次数,最后在遍历一次哈希表,统计有多少个数组出现的频次出现的次数与最大次数相同即可。

AC代码

/**
 * @param {number[]} nums
 * @return {number}
 */
var maxFrequencyElements = function(nums) {
    let max = 0;
    const map = {};
    for(const num of nums){
        map[num] = (map[num] || 0) + 1;
        max = Math.max(max,map[num]);
    }
    let res = 0;
    for(const k in map){
        if(map[k] === max) res += max;
    }
    return res;
};

公众号

关注公众号『前端也能这么有趣』,获取更多有趣内容。

说在后面

🎉 这里是 JYeontu,现在是一名前端工程师,有空会刷刷算法题,平时喜欢打羽毛球 🏸 ,平时也喜欢写些东西,既为自己记录 📋,也希望可以对大家有那么一丢丢的帮助,写的不好望多多谅解 🙇,写错的地方望指出,定会认真改进 😊,偶尔也会在自己的公众号『前端也能这么有趣』发一些比较有趣的文章,有兴趣的也可以关注下。在此谢谢大家的支持,我们下文再见 🙌。

目录
相关文章
|
6月前
【每日一题Day206】LC1054距离相等的条形码 | 计数+大顶堆 计数+排序
【每日一题Day206】LC1054距离相等的条形码 | 计数+大顶堆 计数+排序
43 0
|
2月前
|
JavaScript 前端开发
对数组元素出现次数进行统计
该文章介绍了如何使用JavaScript统计数组中每个元素的出现次数,包括通过创建对象和使用`Set`对象去重的方法。
35 2
对数组元素出现次数进行统计
|
6月前
|
算法 测试技术 C#
【滑动窗口】【差分数组】C++算法:K 连续位的最小翻转次数
【滑动窗口】【差分数组】C++算法:K 连续位的最小翻转次数
|
11月前
|
算法 测试技术 C#
C++算法: 最大化数组末位元素的最少操作次数
C++算法: 最大化数组末位元素的最少操作次数
|
存储 算法 C语言
【二分查找】2080. 区间内查询数字的频率
二分查找是一种高效的查找算法,其时间复杂度为 O(log n)。在许多情况下,我们需要在一个有序数组中找到某个目标值的搜索范围。本文将介绍一种基于二分查找的搜索范围查找算法,该算法能够快速找到目标值在数组中的起始和结束位置。
118 0
|
Python
元素计数
元素计数
80 0
随机1-100的数循环找出88的次数
随机1-100的数循环找出88的次数
85 0
|
算法
“计数”排序
“计数”排序
110 0
|
Python
一日一技:快速判断一个数属于等间隔范围中的位置
一日一技:快速判断一个数属于等间隔范围中的位置
97 0