列表

详情


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 。

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: int maxFrequencyElements(vector<int>& nums) { } };

golang 解法, 执行用时: 2 ms, 内存消耗: 2.4 MB, 提交时间: 2024-01-21 20:43:23

func maxFrequencyElements(nums []int) (ans int) {
	maxCnt := 0
	cnt := map[int]int{}
	for _, x := range nums {
		cnt[x]++
		c := cnt[x]
		if c > maxCnt {
			maxCnt = c
			ans = c
		} else if c == maxCnt {
			ans += c
		}
	}
	return
}

java 解法, 执行用时: 2 ms, 内存消耗: 41.2 MB, 提交时间: 2024-01-21 20:43:10

class Solution {
    public int maxFrequencyElements(int[] nums) {
        int ans = 0, maxCnt = 0;
        HashMap<Integer, Integer> cnt = new HashMap<>();
        for (int x : nums) {
            int c = cnt.merge(x, 1, Integer::sum);
            if (c > maxCnt) {
                maxCnt = ans = c;
            } else if (c == maxCnt) {
                ans += c;
            }
        }
        return ans;
    }
}

cpp 解法, 执行用时: 4 ms, 内存消耗: 22.2 MB, 提交时间: 2024-01-21 20:42:57

class Solution {
public:
    int maxFrequencyElements(vector<int> &nums) {
        int ans = 0, maxCnt = 0;
        unordered_map<int, int> cnt;
        for (int x : nums) {
            int c = ++cnt[x];
            if (c > maxCnt) {
                maxCnt = ans = c;
            } else if (c == maxCnt) {
                ans += c;
            }
        }
        return ans;
    }
};

python3 解法, 执行用时: 39 ms, 内存消耗: 16.4 MB, 提交时间: 2024-01-21 20:42:42

class Solution:
    def maxFrequencyElements(self, nums: List[int]) -> int:
        ans = max_cnt = 0
        cnt = Counter()
        for x in nums:
            cnt[x] += 1
            c = cnt[x]
            if c > max_cnt:
                max_cnt = ans = c
            elif c == max_cnt:
                ans += c
        return ans

上一题