LFU cache
Your task
Implement an LFU (Least-Frequently-Used) cache with the given positive capacity. get(key) returns the value or -1 if absent. put(key, value) inserts or updates; when at capacity, evict the least-frequently-used key, breaking ties by least-recently-used. Both get and put count as a use that increments the key's frequency. Given a list of operations (['put', k, v] or ['get', k]), return the list of results produced by get operations, in order (put produces no output). There are 1 to 10^4 ops; capacity is between 1 and 10^4.
Examples
run_lfu_cache(capacity: int, ops: list[list]) -> list[int]Example 1
Input
run_lfu_cache(2, [["put", 1, 1], ["put", 2, 2], ["get", 1], ["put", 3, 3], ["get", 2], ["get", 3], ["put", 4, 4], ["get", 1], ["get", 3], ["get", 4]])Output
[1, -1, 3, -1, 3, 4]