aboutsummaryrefslogtreecommitdiff
path: root/count_element_max_freq.c
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 /count_element_max_freq.c
parent448f4ccf6dd4d89a1348be3092fee4340bc70206 (diff)
downloadleetcode-844c8a0bbcb890ec4ddd5ef485b767b00b44a78f.tar.gz
leetcode-844c8a0bbcb890ec4ddd5ef485b767b00b44a78f.zip
3005. count elements with maximum frequency
Diffstat (limited to 'count_element_max_freq.c')
-rw-r--r--count_element_max_freq.c24
1 files changed, 12 insertions, 12 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() {