Skip to content

Commit 1cdbba7

Browse files
solves #2190: Most Frequent Number Following Key In an Array in java
1 parent 2f7e848 commit 1cdbba7

File tree

2 files changed

+36
-1
lines changed

2 files changed

+36
-1
lines changed

Diff for: README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -716,7 +716,7 @@
716716
| 2176 | [Count Equal and Divisible Pairs in an Array](https://leetcode.com/problems/count-equal-and-divisible-pairs-in-an-array) | [![Java](assets/java.png)](src/CountEqualAndDivisiblePairsInAnArray.java) | |
717717
| 2180 | [Count Integers With Even Digit Sum](https://leetcode.com/problems/count-integers-with-even-digit-sum) | [![Java](assets/java.png)](src/CountIntegersWithEvenDigitSum.java) | |
718718
| 2185 | [Counting Words With a Given Prefix](https://leetcode.com/problems/counting-words-with-a-given-prefix) | [![Java](assets/java.png)](src/CountingWordsWithAGivenPrefix.java) | |
719-
| 2190 | [Most Frequent Number Following Key In an Array](https://leetcode.com/problems/most-frequent-number-following-key-in-an-array) | | |
719+
| 2190 | [Most Frequent Number Following Key In an Array](https://leetcode.com/problems/most-frequent-number-following-key-in-an-array) | [![Java](assets/java.png)](src/MostFrequentNumberFollowingKeyInAnArray.java) | |
720720
| 2194 | [Cells in a Range on an Excel Sheet](https://leetcode.com/problems/cells-in-a-range-on-an-excel-sheet) | | |
721721
| 2200 | [Find All K-Distant Indices in an Array](https://leetcode.com/problems/find-all-k-distant-indices-in-an-array) | | |
722722
| 2206 | [Divide Array Into Equal Pairs](https://leetcode.com/problems/divide-array-into-equal-pairs) | | |

Diff for: src/MostFrequentNumberFollowingKeyInAnArray.java

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
// https://leetcode.com/problems/most-frequent-number-following-key-in-an-array
2+
// T: O(N)
3+
// S: O(N)
4+
5+
import java.util.HashMap;
6+
import java.util.Map;
7+
8+
public class MostFrequentNumberFollowingKeyInAnArray {
9+
public int mostFrequent(int[] nums, int key) {
10+
final Map<Integer, Integer> targetToFrequency = getTargetFrequencies(nums, key);
11+
return mostFrequentTarget(targetToFrequency);
12+
}
13+
14+
private Map<Integer, Integer> getTargetFrequencies(int[] array, int key) {
15+
final Map<Integer, Integer> result = new HashMap<>();
16+
for (int index = 0 ; index < array.length - 1 ; index++) {
17+
if (array[index] == key) {
18+
int target = array[index + 1];
19+
result.put(target, result.getOrDefault(target, 0) + 1);
20+
}
21+
}
22+
return result;
23+
}
24+
25+
private int mostFrequentTarget(final Map<Integer, Integer> frequencies) {
26+
int target = -1, maxFrequency = -1;
27+
for (Map.Entry<Integer, Integer> entry : frequencies.entrySet()) {
28+
if (entry.getValue() > maxFrequency) {
29+
maxFrequency = entry.getValue();
30+
target = entry.getKey();
31+
}
32+
}
33+
return target;
34+
}
35+
}

0 commit comments

Comments
 (0)