aboutsummaryrefslogtreecommitdiff
path: root/other/time_base_key_val.cpp
diff options
context:
space:
mode:
authorJack Sangdahl <[email protected]>2025-03-10 00:36:13 -0600
committerJack Sangdahl <[email protected]>2025-03-10 00:36:13 -0600
commit7c60dee83b436e8e8a667bf9f191beced8de4fc3 (patch)
treeeb7a24ee2067f92245c57bb118e85a1baf15df50 /other/time_base_key_val.cpp
parent5d7cdc215e4ba1ec4cbb24c084cccb5e5e641468 (diff)
downloadleetcode-7c60dee83b436e8e8a667bf9f191beced8de4fc3.tar.gz
leetcode-7c60dee83b436e8e8a667bf9f191beced8de4fc3.zip
chore: move cpp and rust code to directory
Diffstat (limited to 'other/time_base_key_val.cpp')
-rw-r--r--other/time_base_key_val.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/other/time_base_key_val.cpp b/other/time_base_key_val.cpp
new file mode 100644
index 0000000..c23fb87
--- /dev/null
+++ b/other/time_base_key_val.cpp
@@ -0,0 +1,32 @@
+#include "leetcode.h"
+
+class TimeMap {
+public:
+ unordered_map<string, vector<pair<int, string>>> umvp;
+ TimeMap() {}
+ void set(string key, string value, int timestamp) {
+ umvp[key].push_back({timestamp, value});
+ }
+ string get(string key, int timestamp) {
+ if (!umvp.count(key))
+ return "";
+ int start = 0, end = umvp[key].size();
+ while (start < end) {
+ int mid = start + (end - start) / 2;
+ if (umvp[key][mid].first > timestamp)
+ end = mid;
+ else
+ start = mid + 1;
+ }
+ return start > 0 && start <= umvp[key].size() ? umvp[key][start - 1].second
+ : "";
+ }
+};
+
+int main() {
+ string key, value;
+ int timestamp;
+ TimeMap *obj = new TimeMap();
+ obj->set(key, value, timestamp);
+ string param_2 = obj->get(key, timestamp);
+}