comments | difficulty | edit_url | rating | source | tags | |||
---|---|---|---|---|---|---|---|---|
true |
简单 |
1216 |
第 380 场周赛 Q1 |
|
给你一个由 正整数 组成的数组 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
我们可以用一个哈希表或数组
然后我们遍历
时间复杂度
class Solution:
def maxFrequencyElements(self, nums: List[int]) -> int:
cnt = Counter(nums)
mx = max(cnt.values())
return sum(x for x in cnt.values() if x == mx)
class Solution {
public int maxFrequencyElements(int[] nums) {
int[] cnt = new int[101];
for (int x : nums) {
++cnt[x];
}
int ans = 0, mx = -1;
for (int x : cnt) {
if (mx < x) {
mx = x;
ans = x;
} else if (mx == x) {
ans += x;
}
}
return ans;
}
}
class Solution {
public:
int maxFrequencyElements(vector<int>& nums) {
int cnt[101]{};
for (int x : nums) {
++cnt[x];
}
int ans = 0, mx = -1;
for (int x : cnt) {
if (mx < x) {
mx = x;
ans = x;
} else if (mx == x) {
ans += x;
}
}
return ans;
}
};
func maxFrequencyElements(nums []int) (ans int) {
cnt := [101]int{}
for _, x := range nums {
cnt[x]++
}
mx := -1
for _, x := range cnt {
if mx < x {
mx, ans = x, x
} else if mx == x {
ans += x
}
}
return
}
function maxFrequencyElements(nums: number[]): number {
const cnt: number[] = Array(101).fill(0);
for (const x of nums) {
++cnt[x];
}
let [ans, mx] = [0, -1];
for (const x of cnt) {
if (mx < x) {
mx = x;
ans = x;
} else if (mx === x) {
ans += x;
}
}
return ans;
}