981. Time Based Key-Value Store
題目網址:https://leetcode.cn/problems/time-based-key-value-store/
題意:設計一個基於時間的 key-value 的資料結構, 它可以在不同 timestamp 儲存對應同一個 key 的多個值, 並針對特定 timestamp 得到相對應的 key 的 value。
實作
TimeMapclass:
TimeMap(): 初始化 instancevoid set(String key, String value, int timestamp): 儲存key、value, 以及timestamp。String get(String key, int timestamp):
- 返回
timestamp_prev對應的 value, 其中timestamp_prev <= timestamp- 如果存在多個值, 則返回對應最大的
timestamp_prev的 value。- 如果不存在, 則返回
""。注意:
set(key, value, timestamp)中的timestamp都是嚴格遞增的。

Solution:
想法:題目的意思如下圖,
key裡面會儲存values, 而values裡面可以有多個{value, timestmap}pair。由於values裡面的timestamp都是嚴格遞增的(已排序), 所以我們可直接使用 Binary Search

class TimeMap { |
- time:$O(log(n))$ ➔ Binary Search, 其中
n為m[key]的長度 - space:$O(n)$ ➔ 其中
n為set()的次數
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Zako's Blog!
評論