classTimeMap:def__init__(self):self.ktv=defaultdict(list)defset(self,key:str,value:str,timestamp:int)->None:self.ktv[key].append((timestamp,value))defget(self,key:str,timestamp:int)->str:ifkeynotinself.ktv:return''tv=self.ktv[key]i=bisect_right(tv,(timestamp,chr(127)))returntv[i-1][1]ifielse''# Your TimeMap object will be instantiated and called as such:# obj = TimeMap()# obj.set(key,value,timestamp)# param_2 = obj.get(key,timestamp)
classTimeMap{privateMap<String,TreeMap<Integer,String>>ktv=newHashMap<>();publicTimeMap(){}publicvoidset(Stringkey,Stringvalue,inttimestamp){ktv.computeIfAbsent(key,k->newTreeMap<>()).put(timestamp,value);}publicStringget(Stringkey,inttimestamp){if(!ktv.containsKey(key)){return"";}vartv=ktv.get(key);Integert=tv.floorKey(timestamp);returnt==null?"":tv.get(t);}}/** * 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); */
classTimeMap{public:TimeMap(){}voidset(stringkey,stringvalue,inttimestamp){ktv[key].emplace_back(timestamp,value);}stringget(stringkey,inttimestamp){auto&pairs=ktv[key];pair<int,string>p={timestamp,string({127})};autoi=upper_bound(pairs.begin(),pairs.end(),p);returni==pairs.begin()?"":(i-1)->second;}private:unordered_map<string,vector<pair<int,string>>>ktv;};/** * 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); */
typeTimeMapstruct{ktvmap[string][]pair}funcConstructor()TimeMap{returnTimeMap{map[string][]pair{}}}func(this*TimeMap)Set(keystring,valuestring,timestampint){this.ktv[key]=append(this.ktv[key],pair{timestamp,value})}func(this*TimeMap)Get(keystring,timestampint)string{pairs:=this.ktv[key]i:=sort.Search(len(pairs),func(iint)bool{returnpairs[i].t>timestamp})ifi>0{returnpairs[i-1].v}return""}typepairstruct{tintvstring}/** * Your TimeMap object will be instantiated and called as such: * obj := Constructor(); * obj.Set(key,value,timestamp); * param_2 := obj.Get(key,timestamp); */