Create a timebased key-value store class TimeMap
, that supports two operations.
1. set(string key, string value, int timestamp)
key
and value
, along with the given timestamp
.2. get(string key, int timestamp)
set(key, value, timestamp_prev)
was called previously, with timestamp_prev <= timestamp
.timestamp_prev
.""
).
class TimeMap { private: unordered_map<string, map<int, string>> mp; vector<int> tvec; public: /** Initialize your data structure here. */ TimeMap() {} void set(string key, string value, int timestamp) { mp[key][timestamp] = value; } string get(string key, int timestamp) { if(!mp.count(key)) return ""; if(mp[key].count(timestamp)) return mp[key][timestamp]; for(auto it = mp[key].rbegin(); it != mp[key].rend(); it++) { if(it->first > timestamp) continue; else { return it->second; } } return ""; } };
LC 981. Time Based Key-Value Store
原文:https://www.cnblogs.com/ethanhong/p/10351773.html