題目要求 get 和 set 請(qǐng)求都是 O(1)O(1)O(1) 的平均時(shí)間復(fù)雜度,那很容易想到使用 map,但如果 value 是 int 型,那就很難實(shí)現(xiàn) LRU 的目的,我們可以設(shè)計(jì)一個(gè)雙端鏈表,將最近訪問和插入的節(jié)點(diǎn)插入到鏈表的頭節(jié)點(diǎn),當(dāng)緩存不夠時(shí),只需要移出鏈表尾部的節(jié)點(diǎn),因?yàn)橐?amp;nbsp;set 操作時(shí)間復(fù)雜度也是 O(1)O(1)O(1) 所以必須時(shí)刻記錄尾節(jié)點(diǎn)的位置,這也是為什么要使用雙端鏈表的目的。 // 雙向鏈表 type DLinkedNode struct{ key,value int prev,next *DLinkedNode } type Solution...