A frequency map (or hash map) is a fundamental technique used to count occurrences of elements in a collection. It's essential for solving problems involving duplicates, anagrams, and pattern matching. This technique uses a dictionary/map data structure to store elements as keys and their frequencies as values.
# Python - Using dictionary
def count_frequencies(arr):
"""Count frequency of each element"""
freq_map = {}
for num in arr:
if num in freq_map:
freq_map[num] += 1
else:
freq_map[num] = 1
return freq_map
# Example usage
arr = [1, 2, 2, 3, 3, 3]
result = count_frequencies(arr)
# Output: {1: 1, 2: 2, 3: 3}
// C++ - Using unordered_map
#include <unordered_map>
#include <vector>
std::unordered_map<int, int> countFrequencies(std::vector<int>& arr) {
std::unordered_map<int, int> freqMap;
for (int num : arr) {
freqMap[num]++;
}
return freqMap;
}
// Example usage
std::vector<int> arr = {1, 2, 2, 3, 3, 3};
auto result = countFrequencies(arr);
// freqMap[1] = 1, freqMap[2] = 2, freqMap[3] = 3
// C# - Using Dictionary
Dictionary<int, int> CountFrequencies(int[] arr) {
var freqMap = new Dictionary<int, int>();
foreach (int num in arr) {
if (freqMap.ContainsKey(num)) {
freqMap[num]++;
} else {
freqMap[num] = 1;
}
}
return freqMap;
}
// Example usage
int[] arr = { 1, 2, 2, 3, 3, 3 };
var result = CountFrequencies(arr);
// result[1] = 1, result[2] = 2, result[3] = 3
// Java - Using HashMap
HashMap<Integer, Integer> countFrequencies(int[] arr) {
HashMap<Integer, Integer> freqMap =
new HashMap<>();
for (int num : arr) {
freqMap.put(num, freqMap.getOrDefault(num, 0) + 1);
}
return freqMap;
}
// Example usage
int[] arr = {1, 2, 2, 3, 3, 3};
var result = countFrequencies(arr);
// result.get(1) = 1, result.get(2) = 2, result.get(3) = 3