We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 22d0fe6 commit a75f557Copy full SHA for a75f557
docs/03_链表/lru_cache.py
@@ -62,8 +62,9 @@ def f(n):
62
只需要让 root 的前一个指向这个被删除节点,然后让之前的最后一个节点也指向它就行了。
63
64
使用了循环双端链表之后,我们的操作就都是 O(1) 的了。这也就是使用一个 dict 和一个 循环双端链表 实现LRU 的思路。
65
-不过一般我们使用内置的 OrderedDict(原理和这个类似)就好了,要实现一个循环双端链表是一个不简单的事情。
+不过一般我们使用内置的 OrderedDict(原理和这个类似)就好了,要实现一个循环双端链表是一个不简单的事情,因为链表操作很容易出错。
66
67
+补充:其实 lru 有个缺点就是额外的链表比较占用空间,如果你感兴趣的话可以看看 redis 如何实现的 lru 算法
68
"""
69
70
@@ -112,7 +113,7 @@ def _(n):
112
113
def f_use_lru(n):
114
if n <= 1: # 0 or 1
115
return n
- return f(n - 1) + f(n - 2)
116
+ return f_use_lru(n - 1) + f_use_lru(n - 2)
117
118
119
def test():
0 commit comments