Challenge
A stream contains repeated integer labels. Return one [value, count] pair for each distinct label, in the order in which that label first appeared. Do not sort the labels. The pair list, rather than a dictionary with integer keys, is the required return format.
Input and output contract
0 ≤ n ≤ 60,000; integer labels from -1,000,000 to 1,000,000; at most 1,000 distinct labels. Empty input returns [].
All tests follow this contract. You do not need to validate malformed input. Return the requested result from frequency_counter; printed output is not your answer. Standard-library tools are allowed. Implement your solution in Python 3.12.
Target complexity: O(n) expected time; O(u) auxiliary space, where u is distinct values
Return values are checked by type. Use the exact function name. Print output is not your answer. Tests have time and memory limits.
Public examples
Arguments
[[4, 2, 4, -1, 2, 4]]
Expected return
[[4, 3], [2, 2], [-1, 1]]
Arguments
[[]]
Expected return
[]
Arguments
[[0, -2, 0, -2, 5]]
Expected return
[[0, 2], [-2, 2], [5, 1]]
Hint
A dictionary can remember both the count and the first insertion order.
The worked solution unlocks after completion, or with Premium access.