題目
雜湊表常見的三個操作是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 = value
self.time = time
def getvalue(self):
return self.value
def gettime(self):
return self.time
class myhashmap:
def __init__(self):
self.map = {}
self.time = {}
self.setall = myvalue(none,-1)
def containkey(self,key):
return key in self.map
def put(self,key,value):
self.map[key] = myvalue(value,self.time)
self.time +=1
def setall(self,value):
self.setall = myvalue(value,self.time)
self.time +=1
def 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功能的雜湊表
設計有setall功能的雜湊表 雜湊表常見的三個操作時put get和containskey,而且這三個操作的時間複雜度為o 1 現在想加乙個setall功能,就是把所有記錄value都設成統一的值。請設計並實現這種有setall功能的雜湊表,並且put get containskey和setall...
其他題目 設計有setAll功能的雜湊表
題目 雜湊表常見的三個操作是put get和containskey,而且這三個操作的時間複雜度為o 1 現在想加乙個setall功能,就是把所有的記錄的value值都設成統一的值。請設計並實現這種有setall功能的雜湊表,並且put get containskey和setall四個操作的時間複雜度...
雜湊表 設計雜湊對映
不使用任何內建的雜湊表庫設計乙個雜湊對映 具體地說,你的設計應該包含以下的功能 示例 myhashmap hashmap new myhashmap hashmap.put 1,1 hashmap.put 2,2 hashmap.get 1 返回 1 hashmap.get 3 返回 1 未找到 h...