Skip to content

Commit 1983d4a

Browse files
solves #2404: Most Frequent Even Element in java
1 parent d5774fd commit 1983d4a

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed

Diff for: README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -765,7 +765,7 @@
765765
| 2389 | [Longest Subsequence With Limited Sum](https://leetcode.com/problems/longest-subsequence-with-limited-sum) | [![Java](assets/java.png)](src/LongestSubsequenceWithLimitedSum.java) | |
766766
| 2395 | [Find Subarrays With Equal Sum](https://leetcode.com/problems/find-subarrays-with-equal-sum) | [![Java](assets/java.png)](src/FindSubarraysWithEqualSum.java) | |
767767
| 2399 | [Check Distances Between Same Letters](https://leetcode.com/problems/check-distances-between-same-letters) | [![Java](assets/java.png)](src/CheckDistancesBetweenSameLetters.java) | |
768-
| 2404 | [Most Frequent Even Element](https://leetcode.com/problems/most-frequent-even-element) | | |
768+
| 2404 | [Most Frequent Even Element](https://leetcode.com/problems/most-frequent-even-element) | [![Java](assets/java.png)](src/MostFrequentEvenElement.java) | |
769769
| 2409 | [Count Days Spent Together](https://leetcode.com/problems/count-days-spent-together) | | |
770770
| 2413 | [Smallest Even Multiple](https://leetcode.com/problems/smallest-even-multiple) | | |
771771
| 2418 | [Sort the People](https://leetcode.com/problems/sort-the-people) | | |

Diff for: src/MostFrequentEvenElement.java

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
// https://leetcode.com/problems/most-frequent-even-element
2+
// T: O(N)
3+
// S: O(N)
4+
5+
import java.util.HashMap;
6+
import java.util.Map;
7+
8+
public class MostFrequentEvenElement {
9+
public int mostFrequentEven(int[] nums) {
10+
final Map<Integer, Integer> evenFrequencies = new HashMap<>();
11+
int maxFrequency = 0, smallestEvenNumber = -1;
12+
13+
for (int element : nums) {
14+
if (element % 2 == 1) {
15+
continue;
16+
}
17+
18+
evenFrequencies.put(element, evenFrequencies.getOrDefault(element, 0) + 1);
19+
if (evenFrequencies.get(element) > maxFrequency) {
20+
maxFrequency = evenFrequencies.get(element);
21+
smallestEvenNumber = element;
22+
} else if (evenFrequencies.get(element) == maxFrequency) {
23+
smallestEvenNumber = Math.min(smallestEvenNumber, element);
24+
}
25+
}
26+
27+
return smallestEvenNumber;
28+
}
29+
}

0 commit comments

Comments
 (0)