LeetCode LRU快取機制

2021-10-06 11:16:22 字數 883 閱讀 3812

使用雙向鍊錶來表示最久未使用的結點,最久未使用的結點放在了尾部

使用雜湊表來存放真正的資料

//容量

int size;

//實際大小,當size超過capacity時,刪除最久未使用的結點

mapcache =

newhashmap

<

>()

;//雜湊表用來存放真正的資料

dlinkednode head,tail;

//新增首尾結點方便移動結點

public

lrucache

(int capacity)

public

intget

(int key)

movetohead

(temp)

;//將該結點移動到頭部

return temp.value;

}public voide put

(int key,

int value)

}else

}public move movetohead

(dlinkednode node)

public dlinkednode removetail()

public voi addtohead

(dlinkednode node)

}

Leetcode LRU快取機制

lru least recently used 最後思路 使用了linkedhashmap這個資料結構,它本身可以按訪問順序排序並且將剛剛訪問過的資料放在尾部。class lrucache public int get int key public void put int key,int valu...

Leetcode LRU快取機制

運用你所掌握的資料結構,設計和實現乙個 lru 最近最少使用 快取機制。它應該支援以下操作 獲取資料 get 和 寫入資料 put 獲取資料 get key 如果金鑰 key 存在於快取中,則獲取金鑰的值 總是正數 否則返回 1。寫入資料 put key,value 如果金鑰不存在,則寫入其資料值。...

leetcode LRU快取機制

運用你所掌握的資料結構,設計和實現乙個 lru 最近最少使用 快取機制。它應該支援以下操作 獲取資料 get 和 寫入資料 put 獲取資料 get key 如果關鍵字 key 存在於快取中,則獲取關鍵字的值 總是正數 否則返回 1。寫入資料 put key,value 如果關鍵字已經存在,則變更其...