aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack Sangdahl <[email protected]>2025-09-21 21:23:03 -0600
committerJack Sangdahl <[email protected]>2025-09-21 21:23:03 -0600
commit844c8a0bbcb890ec4ddd5ef485b767b00b44a78f (patch)
tree635f16d8808748730c842902eee8aacfaf25fefe
parent448f4ccf6dd4d89a1348be3092fee4340bc70206 (diff)
downloadleetcode-844c8a0bbcb890ec4ddd5ef485b767b00b44a78f.tar.gz
leetcode-844c8a0bbcb890ec4ddd5ef485b767b00b44a78f.zip
3005. count elements with maximum frequency
-rw-r--r--count_element_max_freq.c24
-rw-r--r--count_element_max_freq.py16
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