Code Explanation:
1. Import LRU Cache Decorator
from functools import lru_cache
Imports the lru_cache decorator from Python’s functools module.
lru_cache is used to memoize function results — it remembers function calls with specific arguments and caches the return value, so repeated calls are fast.
2. Define the Function with Memoization
@lru_cache(None)
def unique_paths(m, n):
@lru_cache(None) tells Python to cache unlimited previous calls of unique_paths(m, n).
unique_paths(m, n) returns the number of unique paths in an m x n grid (from top-left to bottom-right, only moving right or down).
3. Base Case
if m == 1 or n == 1:
return 1
If either m == 1 (only one row) or n == 1 (only one column), there’s only one possible path — go straight down or right.
This is the base case for the recursion.
4. Recursive Case
return unique_paths(m - 1, n) + unique_paths(m, n - 1)
If you're not at the base case, you can:
Move down: unique_paths(m - 1, n)
Move right: unique_paths(m, n - 1)
So, total paths = sum of those two possibilities.
This forms a top-down recursive solution with memoization to prevent repeated work.
5. Call and Print the Result
print(unique_paths(3, 7))
Calculates the number of unique paths in a 3 x 7 grid.
Output: 28
(There are 28 different paths from the top-left to the bottom-right in such a grid.)
Final Output:
28
.png)

0 Comments:
Post a Comment