思路:
快取問題,肯定需要使用map
又要求需要每次在快取容量達到最大值後,刪除最久未使用的,那麼需要使用乙個佇列來維持秩序
使用map來儲存key和value,使用queue依據每個快取使用頻率來維護快取之間的順序
每次get時,如果map中存在這個key,那麼就返回它,但是這裡還需要注意一下,get這個key時,說明這個key這是最新被使用的,需要更新它在queue中的位置。
每次put時,如果map中存在這個key,那麼覆蓋原始key對應的value,但是這裡也需要注意一下,put這個key時,說明這個key這是最新被使用的,需要更新它在queue中的位置。
class lrucache
public int get(int key) else
}public void put(int key, int value) else
queue.add(key);
map.put(key, value);}}
}
學渣帶你刷Leetcode146 LRU快取機制
運用你所掌握的資料結構,設計和實現乙個 lru 最近最少使用 快取機制。它應該支援以下操作 獲取資料 get 和 寫入資料 put 獲取資料 get key 如果金鑰 key 存在於快取中,則獲取金鑰的值 總是正數 否則返回 1。寫入資料 put key,value 如果金鑰已經存在,則變更其資料值...
leetcode146 LRU快取機制
運用你所掌握的資料結構,設計和實現乙個 lru 最近最少使用 快取機制。它應該支援以下操作 獲取資料 get 和 寫入資料 put 獲取資料 get key 如果金鑰 key 存在於快取中,則獲取金鑰的值 總是正數 否則返回 1。寫入資料 put key,value 如果金鑰不存在,則寫入其資料值。...
LeetCode 146 LRU快取機制
運用你所掌握的資料結構,設計和實現乙個 lru 最近最少使用 快取機制。它應該支援以下操作 獲取資料get和 寫入資料put。獲取資料get key 如果金鑰 key 存在於快取中,則獲取金鑰的值 總是正數 否則返回 1。寫入資料put key,value 如果金鑰不存在,則寫入其資料值。當快取容量...