leetcode 146.缓存机制(中等)
生活随笔
收集整理的這篇文章主要介紹了
leetcode 146.缓存机制(中等)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
難度:中等
頻率:274
題目:運用你所掌握的數據結構,設計和實現一個LRU(最近最少使用)緩存機制
- LRUCache(int capacity)以正整數作為容量capacity 初始化LRU緩存
- int get(int key)如果關鍵字key 存在于緩存中,則返回關鍵字的值,否則返回-1;
- void put(int key,int value)如果關鍵字已經存在,則變更其數據值;如果關鍵字不存在,則插入改組【關鍵字-值】。但緩存容量達到上限時,它應該在寫入新數據之前刪除最久未使用的數據值,從而為新的數據值留出空間。
進階: 你能否在O(1)時間復雜度內完成這兩種操作?
示例:
題目類型:多數據結構復用
解題方法:雙鏈表+hashmap【插入和刪除的時間復雜度為O(1),應該想到鏈表,但查找為O(n)。而hashmap的查找為O(1)】
需要注意: 基本功為:雙鏈表的構建、插入和刪除、節點的構建(類)、hashmap的更新(put)和刪除(remove)。
總結
以上是生活随笔為你收集整理的leetcode 146.缓存机制(中等)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode206.反转链表 解题思
- 下一篇: leetcode 3.无重复字符的最长子