Skip to content

Commit

Permalink
fix lru_cache function error
Browse files Browse the repository at this point in the history
  • Loading branch information
PegasusWang committed Oct 8, 2019
1 parent 22d0fe6 commit a75f557
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions docs/03_链表/lru_cache.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,9 @@ def f(n):
只需要让 root 的前一个指向这个被删除节点,然后让之前的最后一个节点也指向它就行了。
使用了循环双端链表之后,我们的操作就都是 O(1) 的了。这也就是使用一个 dict 和一个 循环双端链表 实现LRU 的思路。
不过一般我们使用内置的 OrderedDict(原理和这个类似)就好了,要实现一个循环双端链表是一个不简单的事情。
不过一般我们使用内置的 OrderedDict(原理和这个类似)就好了,要实现一个循环双端链表是一个不简单的事情,因为链表操作很容易出错
补充:其实 lru 有个缺点就是额外的链表比较占用空间,如果你感兴趣的话可以看看 redis 如何实现的 lru 算法
"""


Expand Down Expand Up @@ -112,7 +113,7 @@ def _(n):
def f_use_lru(n):
if n <= 1: # 0 or 1
return n
return f(n - 1) + f(n - 2)
return f_use_lru(n - 1) + f_use_lru(n - 2)


def test():
Expand Down

0 comments on commit a75f557

Please sign in to comment.