天天看點

算法: 實作LRU緩存,讀取、寫入O(1)實作

這題應該見的不少了,寫寫記錄一下。

實作該功能分析:

(1) O(1) 時間完成查找,那除了 hash 别無選擇。

(2) LRU 最近最少使用算法,為了友善資料的淘汰。需要對最近通路的資料放未通路資料之前。

     用雙向連結清單實作即可。(通常情況下,雙向連結清單讀取、插入的時間複雜度都是O(n), 但是如果知道插入位置,則可以實作O(1)實作。)

實作: hash存key對應的資料在雙向連結清單中的位置,就可以完成該功能。

具體代碼:

繼續閱讀