Leetcode setAll的雜湊表

2021-10-10 20:52:22 字數 894 閱讀 3913

雜湊表常見的三個操作時put、get和containskey,而且這三個操作的時間複雜度為o(1)。現在想加乙個setall功能,就是把所有記錄value都設成統一的值。請設計並實現這種有setall功能的雜湊表,並且put、get、containskey和setall四個操作的時間複雜度都為o(1)。

對於hash其底層採取鏈位址法的方式作為物理儲存,即通過key取模運算定位到所在的bucket然後在bucket中進行操作。現需要具備o(1)時間的setall操作。

具體的做法是每一次對資料的改動設定時間戳,標記當前資料的上一次修改時間。

具體的做法為:

當set的時候:

設定mapnode的資料時間戳為最新的時間

當get的時候:

若node的時間戳比上一次setall時間更早,那麼返回setall的值

若node的時間戳比上一次setall時間更晚,那麼返回node的值

當setall的時候:

不去修改每乙個node的值,而是記錄下時間和setall的數值

struct node

node

(int _v,

int _t)};

intmain()

else

if(opt==2)

else

else}}

else

}}

container of 的的的原理

另外一篇,同樣精彩,揭開linux核心中container of的神秘面紗 華清遠見嵌入式學院講師。在linux 核心中有乙個大名鼎鼎的巨集container of 這個巨集是用來幹嘛的呢?我們先來看看它在核心中是怎樣定義的。呵呵,乍一看不知道是什麼東東。我們先來分析一下container of p...

存在的就是合理的,發生的即是必然的。

筆者有時候會想,什麼是對,什麼是錯?對於追求某一件事情之前首先會考慮,為什麼我要做這件事情。所以經過自我分析和生活周邊環境的總結。我認為,對於乙個人來,這是在站在個體的角度上說。什麼是對的?就是你自己覺得是對的,它就是對的。不過這個只是你自己的想法。主觀上的正確,不代表客觀上也受到了別人的認可。就拿...

Apache的rewrite的重寫相關的引數

apache mod rewrite規則重寫的標誌一覽 使用mod rewrite時常用的伺服器變數 rewriterule規則表示式的說明 匹配任何單字元 chars 匹配字串 chars chars 不匹配字串 chars text1 text2 可選擇的字串 text1或text2 匹配0到1...