981. 基于时间的键值存储
2021/7/10 23:37:11
本文主要是介绍981. 基于时间的键值存储,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
链接:981. 基于时间的键值存储
题解:
class TimeMap { public: /** Initialize your data structure here. */ TimeMap() { _table.clear(); } void set(string key, string value, int timestamp) { _table[key].emplace_back(std::pair<int, string>(timestamp, value)); } string get(string key, int timestamp) { auto ite = _table.find(key); if (ite == _table.end()) { return ""; } auto& arr = ite->second; int left = 0; int right = arr.size()-1; while (left + 1 < right) { int mid = left + (right-left)/2; if (arr[mid].first == timestamp) { return arr[mid].second; } else if (arr[mid].first > timestamp) { right = mid; } else if (arr[mid].first < timestamp) { left = mid; } } if (arr[left].first == timestamp) { return arr[left].second; } else if (arr[right].first == timestamp) { return arr[right].second; } else if (arr[right].first < timestamp) { return arr[right].second; } else if (arr[left].first < timestamp) { return arr[left].second; } return ""; } private: std::unordered_map<string, std::vector<std::pair<int, string>>> _table; }; /** * Your TimeMap object will be instantiated and called as such: * TimeMap* obj = new TimeMap(); * obj->set(key,value,timestamp); * string param_2 = obj->get(key,timestamp); */
class TimeMap { public: /** Initialize your data structure here. */ TimeMap() { _table.clear(); } void set(string key, string value, int timestamp) { _table[key].emplace_back(std::pair<int, string>(timestamp, value)); } string get(string key, int timestamp) { auto ite = _table.find(key); if (ite == _table.end()) { return ""; } std::pair<int, std::string> upper(timestamp, string({127})); auto entry = upper_bound(ite->second.begin(), ite->second.end(), upper); if (entry != ite->second.begin()) { return (entry-1)->second; } return ""; } private: std::unordered_map<string, std::vector<std::pair<int, string>>> _table; }; /** * Your TimeMap object will be instantiated and called as such: * TimeMap* obj = new TimeMap(); * obj->set(key,value,timestamp); * string param_2 = obj->get(key,timestamp); */
这篇关于981. 基于时间的键值存储的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-26Adobe国际认证(证书)认证价值详解
- 2024-07-2501.计算机组成原理和结构
- 2024-07-25城域网
- 2024-07-25为什么API经济在经济不确定时期表现突出
- 2024-07-24Python实现Java mybatis-plus 产生的SQL自动化测试SQL速度和判断SQL是否走索引
- 2024-07-24轻松获取天气信息:免费天气API一览
- 2024-07-24深入理解 Java17 新特性:Sealed Classes
- 2024-07-24大厂的第三方支付业务架构设计
- 2024-07-23docker及tomcat 部署java项目
- 2024-07-23Adobe国际认证详解-艺术设计专业的就业前景