使用雙向鍊錶來表示最久未使用的結點,最久未使用的結點放在了尾部
使用雜湊表來存放真正的資料
//容量
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 如果關鍵字已經存在,則變更其...