Skip to content

Latest commit

 

History

History
143 lines (59 loc) · 3.47 KB

File metadata and controls

143 lines (59 loc) · 3.47 KB

中文文档

Description

Create a timebased key-value store class TimeMap, that supports two operations.

1. set(string key, string value, int timestamp)

    <li>Stores the <code>key</code> and <code>value</code>, along with the given <code>timestamp</code>.</li>
    

2. get(string key, int timestamp)

    <li>Returns a value such that <code>set(key, value, timestamp_prev)</code> was called previously, with <code>timestamp_prev &lt;= timestamp</code>.</li>
    
    <li>If there are multiple such values, it returns the one with the largest <code>timestamp_prev</code>.</li>
    
    <li>If there are no values, it returns the empty string (<code>&quot;&quot;</code>).</li>
    

 

Example 1:

Input: inputs = ["TimeMap","set","get","get","set","get","get"], inputs = [[],["foo","bar",1],["foo",1],["foo",3],["foo","bar2",4],["foo",4],["foo",5]]

Output: [null,null,"bar","bar",null,"bar2","bar2"]

Explanation:   

TimeMap kv;   

kv.set("foo", "bar", 1); // store the key "foo" and value "bar" along with timestamp = 1   

kv.get("foo", 1);  // output "bar"   

kv.get("foo", 3); // output "bar" since there is no value corresponding to foo at timestamp 3 and timestamp 2, then the only value is at timestamp 1 ie "bar"   

kv.set("foo", "bar2", 4);   

kv.get("foo", 4); // output "bar2"   

kv.get("foo", 5); //output "bar2"   



Example 2:

Input: inputs = ["TimeMap","set","set","get","get","get","get","get"], inputs = [[],["love","high",10],["love","low",20],["love",5],["love",10],["love",15],["love",20],["love",25]]

Output: [null,null,null,"","high","high","low","low"]

 

Note:

    <li>All key/value strings are lowercase.</li>
    
    <li>All key/value strings have&nbsp;length in the range&nbsp;<code>[1, 100]</code></li>
    
    <li>The <code>timestamps</code> for all <code>TimeMap.set</code> operations are strictly increasing.</li>
    
    <li><code>1 &lt;= timestamp &lt;= 10^7</code></li>
    
    <li><code>TimeMap.set</code> and <code>TimeMap.get</code>&nbsp;functions will be called a total of <code>120000</code> times (combined) per test case.</li>
    

Solutions

Python3

Java

...