DSA · Arrays & hashing
Record each value's count
When a task asks how often each value appears, scan once and update a Map. Each update is expected O(1), so counting n values takes expected O(n) time and up to O(u) extra space for u distinct values.
function frequencies(values: string[]): Map<string, number> {
const counts = new Map<string, number>();
for (const value of values) {
counts.set(value, (counts.get(value) ?? 0) + 1);
}
return counts;
}