日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

设计有setAll功能的哈希表

發布時間:2025/4/5 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计有setAll功能的哈希表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目

  哈希表常見的三個操作是put、get和containsKey,而且這三個操作的時間復雜度為O(1)。現在想加一個setAll功能,就是把所有的記錄的value值都設成統一的值。請設計并實現這種有setAll功能的哈希表,并且put、get、containsKey和setAll四個操作的時間復雜度都為O(1)。

基本思路

  加入時間戳。

  1、把每一個記錄都加上一個時間,標記每條記錄是合適建立的

  2、設置一個setAll記錄也加上一個時間,標記setAll記錄何時建立

  3、查詢記錄時,如果某條記錄的時間早于setAll記錄的時間,說明setAll是最新數據,返回setAll記錄的值。如果某條記錄的時間晚于setAll記錄的時間,說明記錄的值是最新數據,返回該條記錄的值
?

clas MyValue:def __init__(self,value,time):self.value = valueself.time = timedef getValue(self):return self.valuedef getTime(self):return self.timeclass MyHashMap:def __init__(self):self.map = {}self.time = {}self.setAll = MyValue(None,-1)def containKey(self,key):return key in self.mapdef put(self,key,value):self.map[key] = MyValue(value,self.time)self.time +=1def setAll(self,value):self.setAll = MyValue(value,self.time)self.time +=1def get(self,key):if self.containsKey(key):if self.map[key].getTime() < self.setAll.getTime():return self.setAll.getValue()else:return self.map[key].getValue()else:return None

?

總結

以上是生活随笔為你收集整理的设计有setAll功能的哈希表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。