Time Based Key-Value Store
Design
, Binary Search
, TreeMap
, HashMap
Medium
Create a timebased key-value store class TimeMap
, that supports two operations.
1.set(string key, string value, int timestamp)
Stores the
key
andvalue
, along with the giventimestamp
.
2.get(string key, int timestamp)
Returns a value such that
set(key, value, timestamp_prev)
was called previously, with
timestamp_prev <= timestamp
.If there are multiple such values, it returns the one with the largest
timestamp_prev
.If there are no values, it returns the empty string (
""
).
Example 1:
Example 2:
Note:
All key/value strings are lowercase.
All key/value strings have length in the range
[1, 100]
The
timestamps
for allTimeMap.set
operations are strictly increasing.1 <= timestamp <= 10^7
TimeMap.set
andTimeMap.get
functions will be called a total of120000
times (combined) per test case.
Analysis & Solution
HashMap + TreeMap
Time Complexity: O(1) for each
set
operation, and O(logN) for eachget
operation, where N is the number of entries in theTimeMap
.Space Complexity: O(N).
Last updated