class Solution {
public:
int maxFrequencyElements(vector<int>& nums) {
}
};
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
原站题解
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