diff options
author | Jack Sangdahl <[email protected]> | 2025-09-21 21:23:03 -0600 |
---|---|---|
committer | Jack Sangdahl <[email protected]> | 2025-09-21 21:23:03 -0600 |
commit | 844c8a0bbcb890ec4ddd5ef485b767b00b44a78f (patch) | |
tree | 635f16d8808748730c842902eee8aacfaf25fefe | |
parent | 448f4ccf6dd4d89a1348be3092fee4340bc70206 (diff) | |
download | leetcode-844c8a0bbcb890ec4ddd5ef485b767b00b44a78f.tar.gz leetcode-844c8a0bbcb890ec4ddd5ef485b767b00b44a78f.zip |
3005. count elements with maximum frequency
-rw-r--r-- | count_element_max_freq.c | 24 | ||||
-rw-r--r-- | count_element_max_freq.py | 16 |
2 files changed, 19 insertions, 21 deletions
diff --git a/count_element_max_freq.c b/count_element_max_freq.c index 92f0128..f3fc177 100644 --- a/count_element_max_freq.c +++ b/count_element_max_freq.c @@ -8,18 +8,18 @@ * that in the array */ -int maxFrequencyElements(int *nums, int nums_size) { - int *u_map = (int *)calloc(101, sizeof(int)), max_freq = 0, cnt = 0; - for (int i = 0; i < nums_size; i++) - u_map[nums[i]]++; - for (int i = 0; i < 101; ++i) - if (u_map[i] > max_freq) - max_freq = u_map[i]; - for (int i = 0; i < 101; i++) - if (u_map[i] == max_freq) - cnt += u_map[i]; - free(u_map); - return cnt; +int maxFrequencyElements(int *nums, int numsSize) { + int freq[101] = {0}, max_freq = 0, m = 0; + for (int i = 0; i < numsSize; i++) { + int curr = nums[i]; + freq[curr]++; + m += (freq[curr] == max_freq); + if (freq[curr] > max_freq) { + m = 1; + max_freq = freq[curr]; + } + } + return m * max_freq; } int main() { diff --git a/count_element_max_freq.py b/count_element_max_freq.py index 5c8e6b2..57e8cf2 100644 --- a/count_element_max_freq.py +++ b/count_element_max_freq.py @@ -14,16 +14,14 @@ class Solution(object): :type nums: List[int] :rtype: int """ - u_map = {} + freq = [0] * 101 + max_freq, ans = 0, 0 for i in nums: - u_map[i] = u_map.get(i, 0) + 1 - max_i = 0 - for key, val in u_map.items(): - max_i = max(max_i, val) - ans = 0 - for key, val in u_map.items(): - if val == max_i: - ans += val + freq[i] += 1 + max_freq = max(max_freq, freq[i]) + for i in freq: + if i == max_freq: + ans += i return ans |