Skip to content

Instantly share code, notes, and snippets.

@SergeyNarozhny
Created April 13, 2017 22:51
Show Gist options
  • Save SergeyNarozhny/ad1067669b4f785082937ec6585263dc to your computer and use it in GitHub Desktop.
Save SergeyNarozhny/ad1067669b4f785082937ec6585263dc to your computer and use it in GitHub Desktop.
def memo(f):
cache = {};
def inner(n):
if n not in cache:
cache[n] = f(n);
return cache[n];
return inner;
@SergeyNarozhny
Copy link
Author

Or using lru_cache:
from functools import lru_cache fib1 = lru_cache(maxsize=None)(old_fib1)

@SergeyNarozhny
Copy link
Author

Or using loop:
def fib3(n); assert n >= 0; f0, f1 = 0, 1; for i in range(n - 1): f0, f1 = f1, f0 + f1; return f1;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment