[
design
binary search
hash table
]
Leetcode 0981. Time Based Key-Value Store
Problem statement
https://leetcode.com/problems/time-based-key-value-store/
Solution
Keep for every key pari (value, timestamp). For get funtcion use binary search, notice that we need to use key (timestamp, element > z). Be careful, “Z” is smaller than z!, so use { for example.
Complexity
It is O(1) for append and O(log n) for get.
Code
class TimeMap:
def __init__(self):
self.t_v = defaultdict(list)
def set(self, key, value, timestamp):
self.t_v[key].append((timestamp, value))
def get(self, key, timestamp):
i = bisect.bisect(self.t_v[key], (timestamp, "{") )
return self.t_v[key][i - 1][1] if i else ""