170. Function Memoization
Snippet 1: Basic Function Memoization Using a Dictionary
Copy
def fibonacci(n, memo={}):
if n in memo:
return memo[n]
if n <= 2:
return 1
memo[n] = fibonacci(n - 1, memo) + fibonacci(n - 2, memo)
return memo[n]
print(fibonacci(10)) # Output: 55Snippet 2: Memoization with functools.lru_cache
Copy
from functools import lru_cache
@lru_cache(maxsize=None)
def factorial(n):
return n * factorial(n - 1) if n > 1 else 1
print(factorial(10)) # Output: 3628800Snippet 3: Custom Memoization Decorator
Copy
Snippet 4: Memoization for a Computationally Expensive Function
Copy
Snippet 5: Recursive Memoization for Combinatorics
Copy
Snippet 6: Memoization with Immutable Default Arguments
Copy
Snippet 7: Using functools.cache for Memoization (Python 3.9+)
Copy
Snippet 8: Memoization for String Processing
Copy
Snippet 9: Memoization for Pathfinding Problems
Copy
Snippet 10: Caching Results of an API Call Simulation
Copy
Last updated